|
31441
|
1229
|
53
|
2026-05-13T08:40:43.224022+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661643224_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-in +VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
+-zsh:66> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh\n+-zsh:66> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib","depth":4,"on_screen":true,"value":"+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh\n+-zsh:66> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
4954777787453284012
|
9051222184494390728
|
click
|
accessibility
|
NULL
|
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-in +VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
+-zsh:66> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31439
|
NULL
|
NULL
|
NULL
|
|
31429
|
1230
|
36
|
2026-05-13T08:40:08.926563+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661608926_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-in +VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
+-zsh:66> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh\n+-zsh:66> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib","depth":4,"on_screen":true,"value":"+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh\n+-zsh:66> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
4954777787453284012
|
9051222184494390728
|
idle
|
accessibility
|
NULL
|
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-in +VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
+-zsh:66> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd lib
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31426
|
NULL
|
NULL
|
NULL
|
|
31428
|
1229
|
46
|
2026-05-13T08:40:06.843931+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661606843_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-in +VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
+-zsh:66> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh\n+-zsh:66> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh\n+-zsh:66> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-18252809673407643
|
9051222184494390728
|
visual_change
|
accessibility
|
NULL
|
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-in +VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
+-zsh:66> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31427
|
1229
|
45
|
2026-05-13T08:39:54.758586+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661594758_m1.jpg...
|
iTerm2
|
nano
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cm +VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ nano screenpipe_sync_db.sh
+-zsh:64> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 File: screenpipe_sync_db.sh
#!/bin/bash
# screenpipe_sync_db.sh
# Database operations for screenpipe sync
# Source this file to use the functions, or execute standalone with env vars set
# Source helpers
LIB_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$LIB_DIR/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
CREATE TABLE IF NOT EXISTS nas.audio_chunks AS SELECT * FROM main.audio_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.audio_transcriptions AS SELECT * FROM main.audio_transcriptions WHERE 0;
DETACH nas;
"
}
db_create_indexes() {
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
nano
Close Tab
screenpipe"
Close Tab
⌥⌘1
nano...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ nano screenpipe_sync_db.sh \n+-zsh:64> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 File: screenpipe_sync_db.sh \n\n#!/bin/bash\n# screenpipe_sync_db.sh\n# Database operations for screenpipe sync\n# Source this file to use the functions, or execute standalone with env vars set\n\n# Source helpers\nLIB_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\nsource \"$LIB_DIR/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n\u0000\u0000run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.audio_chunks AS SELECT * FROM main.audio_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.audio_transcriptions AS SELECT * FROM main.audio_transcriptions WHERE 0;\nDETACH nas;\n\"\n}\n\ndb_create_indexes() {\n\u0000\u0000run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\n\n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell","depth":4,"on_screen":true,"value":"+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ nano screenpipe_sync_db.sh \n+-zsh:64> nano screenpipe_sync_db.sh\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib \n+-zsh:65> cd lib\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 File: screenpipe_sync_db.sh \n\n#!/bin/bash\n# screenpipe_sync_db.sh\n# Database operations for screenpipe sync\n# Source this file to use the functions, or execute standalone with env vars set\n\n# Source helpers\nLIB_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\nsource \"$LIB_DIR/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n\u0000\u0000run_sqlite_heredoc \"creating tables\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.audio_chunks AS SELECT * FROM main.audio_chunks WHERE 0;\nCREATE TABLE IF NOT EXISTS nas.audio_transcriptions AS SELECT * FROM main.audio_transcriptions WHERE 0;\nDETACH nas;\n\"\n}\n\ndb_create_indexes() {\n\u0000\u0000run_sqlite_heredoc \"creating indexes\" \"\nATTACH '$NAS_DB' AS nas;\nCREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);\nCREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);\nCREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);\n\n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"nano","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"nano","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.025,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
1529785320975639840
|
4439553758244720072
|
visual_change
|
accessibility
|
NULL
|
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cm +VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ nano screenpipe_sync_db.sh
+-zsh:64> nano screenpipe_sync_db.sh
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd lib
+-zsh:65> cd lib
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
UW PICO 5.09 New Buffer
[ Read 297 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 File: screenpipe_sync_db.sh
#!/bin/bash
# screenpipe_sync_db.sh
# Database operations for screenpipe sync
# Source this file to use the functions, or execute standalone with env vars set
# Source helpers
LIB_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$LIB_DIR/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
CREATE TABLE IF NOT EXISTS nas.audio_chunks AS SELECT * FROM main.audio_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.audio_transcriptions AS SELECT * FROM main.audio_transcriptions WHERE 0;
DETACH nas;
"
}
db_create_indexes() {
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
nano
Close Tab
screenpipe"
Close Tab
⌥⌘1
nano...
|
31425
|
NULL
|
NULL
|
NULL
|
|
31426
|
1230
|
35
|
2026-05-13T08:39:38.773282+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661578773_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
-8121456522345911103
|
4439536167140752840
|
visual_change
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31425
|
1229
|
44
|
2026-05-13T08:39:36.606918+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661576606_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ffmpeg","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
1258564883426039241
|
4439536167132364232
|
visual_change
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31424
|
1230
|
34
|
2026-05-13T08:39:36.008443+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661576008_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ffmpeg","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
7566219225768724840
|
4439536167132356040
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
31422
|
NULL
|
NULL
|
NULL
|
|
31423
|
1229
|
43
|
2026-05-13T08:39:36.008368+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661576008_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ffmpeg","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
7566219225768724840
|
4439536167132356040
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31417
|
1229
|
39
|
2026-05-13T08:39:21.507265+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661561507_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-4063927243590962030
|
4439536167132364232
|
visual_change
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31416
|
1230
|
31
|
2026-05-13T08:39:19.155679+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661559155_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
-4063927243590962030
|
4439536167132364232
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31415
|
1229
|
38
|
2026-05-13T08:39:19.119058+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661559119_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11 \n+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-4063927243590962030
|
4439536167132364232
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
+-zsh:63> /Users/lukas/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31404
|
1230
|
25
|
2026-05-13T08:38:45.928271+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661525928_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
-6547314836419746127
|
4439676904620719560
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31403
|
1229
|
32
|
2026-05-13T08:38:39.169364+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661519169_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x\n+precmd:0> vcs_info \n+vcs_info:1> emulate -L zsh\n+vcs_info:2> setopt extendedglob NO_warn_create_global\n+vcs_info:4> [[ -r . ]]\n+vcs_info:6> local pat\n+vcs_info:7> local -i found retval\n+vcs_info:8> local -a enabled disabled dps\n+vcs_info:9> local usercontext vcs rrn quiltmode\n+vcs_info:10> local -x LC_MESSAGES\n+vcs_info:11> local -i maxexports\n+vcs_info:12> local -a msgs\n+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data\n+vcs_info:21> LC_MESSAGES=C \n+vcs_info:22> [[ -n '' ]]\n+vcs_info:27> vcs=-init- \n+vcs_info:27> rrn=-all- \n+vcs_info:27> quiltmode=addon \n+vcs_info:28> usercontext=default \n+vcs_info:30> VCS_INFO_hook start-up\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=start-up \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+vcs_info:31> retval=0 \n+vcs_info:32> (( retval == 1 ))\n+vcs_info:34> (( retval == 2 ))\n+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled\n+vcs_info:43> (( 0 == 0 ))\n+vcs_info:43> enabled=( all ) \n+vcs_info:45> [[ -n '' ]]\n+vcs_info:50> [[ -n all ]]\n+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla ) \n+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled\n+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps\n+vcs_info:65> VCS_INFO_maxexports\n+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset\n+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports\n+VCS_INFO_maxexports:7> maxexports=2 \n+VCS_INFO_maxexports:8> [[ 2 != <-> ]]\n+VCS_INFO_maxexports:8> (( maxexports < 1 ))\n+VCS_INFO_maxexports:13> return 0\n+vcs_info:67> (( found = 0 ))\n+vcs_info:68> vcs=bzr\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr \n+vcs_info:77> VCS_INFO_detect_bzr\n+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case bzr (/*)\n+VCS_INFO_check_com:7> case bzr (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_bzr:9> return 1\n+vcs_info:68> vcs=cdv\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv \n+vcs_info:77> VCS_INFO_detect_cdv\n+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cdv (/*)\n+VCS_INFO_check_com:7> case cdv (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cdv:9> return 1\n+vcs_info:68> vcs=cvs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs \n+vcs_info:77> VCS_INFO_detect_cvs\n+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case cvs (/*)\n+VCS_INFO_check_com:7> case cvs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_cvs:9> return 1\n+vcs_info:68> vcs=darcs\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs \n+vcs_info:77> VCS_INFO_detect_darcs\n+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case darcs (/*)\n+VCS_INFO_check_com:7> case darcs (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_darcs:9> return 1\n+vcs_info:68> vcs=fossil\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil \n+vcs_info:77> VCS_INFO_detect_fossil\n+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case fossil (/*)\n+VCS_INFO_check_com:7> case fossil (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_fossil:9> return 1\n+vcs_info:68> vcs=git\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git \n+vcs_info:77> VCS_INFO_detect_git\n+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_git:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_git:9> VCS_INFO_check_com git\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case git (/*)\n+VCS_INFO_check_com:7> case git (*)\n+VCS_INFO_check_com:12> (( 1 ))\n+VCS_INFO_check_com:12> return 0\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir\n+VCS_INFO_detect_git:9> vcs_comm[gitdir]='' \n+VCS_INFO_detect_git:15> return 1\n+vcs_info:68> vcs=hg\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg \n+vcs_info:77> VCS_INFO_detect_hg\n+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case hg (/*)\n+VCS_INFO_check_com:7> case hg (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_hg:9> return 1\n+vcs_info:68> vcs=mtn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn \n+vcs_info:77> VCS_INFO_detect_mtn\n+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case mtn (/*)\n+VCS_INFO_check_com:7> case mtn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_mtn:9> return 1\n+vcs_info:68> vcs=p4\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4 \n+vcs_info:77> VCS_INFO_detect_p4\n+VCS_INFO_detect_p4:1> local serverport p4where\n+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server\n+VCS_INFO_detect_p4:23> [[ -n '' ]]\n+VCS_INFO_detect_p4:23> return 1\n+vcs_info:68> vcs=svk\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk \n+vcs_info:77> VCS_INFO_detect_svk\n+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob\n+VCS_INFO_detect_svk:17> local -i fhash\n+VCS_INFO_detect_svk:18> fhash=0 \n+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svk (/*)\n+VCS_INFO_check_com:7> case svk (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svk:20> return 1\n+vcs_info:68> vcs=svn\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn \n+vcs_info:77> VCS_INFO_detect_svn\n+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case svn (/*)\n+VCS_INFO_check_com:7> case svn (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_svn:9> return 1\n+vcs_info:68> vcs=tla\n+vcs_info:69> [[ -n '' ]]\n+vcs_info:70> (( 1 == 0 ))\n+vcs_info:75> vcs_comm=( ) \n+vcs_info:76> VCS_INFO_get_cmd\n+VCS_INFO_get_cmd:4> local cmd\n+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd\n+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla \n+vcs_info:77> VCS_INFO_detect_tla\n+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]\n+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla\n+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit\n+VCS_INFO_check_com:7> case tla (/*)\n+VCS_INFO_check_com:7> case tla (*)\n+VCS_INFO_check_com:12> (( 0 ))\n+VCS_INFO_check_com:15> return 1\n+VCS_INFO_detect_tla:9> return 1\n+vcs_info:80> (( found == 0 ))\n+vcs_info:81> vcs=-quilt- \n+vcs_info:81> quiltmode=standalone \n+vcs_info:82> VCS_INFO_quilt standalone\n+VCS_INFO_quilt:3> (( 1 ))\n+VCS_INFO_quilt:24> (( 1 ))\n+VCS_INFO_quilt:63> (( 1 ))\n+VCS_INFO_quilt:86> (( 1 ))\n+VCS_INFO_quilt:92> emulate -L zsh\n+VCS_INFO_quilt:93> setopt extendedglob\n+VCS_INFO_quilt:94> local mode=standalone\n+VCS_INFO_quilt:95> local patches pc qstring root\n+VCS_INFO_quilt:96> local -i ret\n+VCS_INFO_quilt:97> local context\n+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env\n+VCS_INFO_quilt:99> local -A hook_com\n+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all- \n+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt\n+VCS_INFO_quilt:102> return 1\n+vcs_info:82> VCS_INFO_set --nvcs\n+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset\n+VCS_INFO_set:8> local -i i j\n+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]\n+VCS_INFO_set:11> [[ '' == -preinit- ]]\n+VCS_INFO_set:12> i=0\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='\n+VCS_INFO_set:12> i=1\n+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='\n+VCS_INFO_set:15> VCS_INFO_nvcsformats\n+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit\n+VCS_INFO_nvcsformats:6> local c v rr\n+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]\n+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs\n+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))\n+VCS_INFO_nvcsformats:15> return 0\n+VCS_INFO_set:16> [[ '' != -preinit- ]]\n+VCS_INFO_set:16> VCS_INFO_hook no-vcs\n+VCS_INFO_hook:5> local hook static func\n+VCS_INFO_hook:6> local context hook_name\n+VCS_INFO_hook:7> local -i ret\n+VCS_INFO_hook:8> local -a hooks tmp\n+VCS_INFO_hook:9> local -i debug\n+VCS_INFO_hook:11> ret=0 \n+VCS_INFO_hook:12> hook_name=no-vcs \n+VCS_INFO_hook:13> shift\n+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all- \n+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs \n+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug\n+VCS_INFO_hook:17> debug=0 \n+VCS_INFO_hook:18> (( debug ))\n+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks\n+VCS_INFO_hook:25> (( debug ))\n+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp\n+VCS_INFO_hook:29> (( debug ))\n+VCS_INFO_hook:32> hooks+=( ) \n+VCS_INFO_hook:33> (( 0 == 0 ))\n+VCS_INFO_hook:33> return 0\n+VCS_INFO_set:19> (( 0 - 1 < 0 ))\n+VCS_INFO_set:19> return 0\n+vcs_info:83> return 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-6547314836419746127
|
4439676904620719560
|
visual_change
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ set -x
+precmd:0> vcs_info
+vcs_info:1> emulate -L zsh
+vcs_info:2> setopt extendedglob NO_warn_create_global
+vcs_info:4> [[ -r . ]]
+vcs_info:6> local pat
+vcs_info:7> local -i found retval
+vcs_info:8> local -a enabled disabled dps
+vcs_info:9> local usercontext vcs rrn quiltmode
+vcs_info:10> local -x LC_MESSAGES
+vcs_info:11> local -i maxexports
+vcs_info:12> local -a msgs
+vcs_info:19> local -A vcs_comm hook_com backend_misc user_data
+vcs_info:21> LC_MESSAGES=C
+vcs_info:22> [[ -n '' ]]
+vcs_info:27> vcs=-init-
+vcs_info:27> rrn=-all-
+vcs_info:27> quiltmode=addon
+vcs_info:28> usercontext=default
+vcs_info:30> VCS_INFO_hook start-up
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=start-up
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-init-+start-up:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:start-up
+VCS_INFO_hook:17> zstyle -t :vcs_info:-init-+start-up:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:start-up hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-init-+start-up:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+vcs_info:31> retval=0
+vcs_info:32> (( retval == 1 ))
+vcs_info:34> (( retval == 2 ))
+vcs_info:42> zstyle -a :vcs_info:-init-:default:-all- enable enabled
+vcs_info:43> (( 0 == 0 ))
+vcs_info:43> enabled=( all )
+vcs_info:45> [[ -n '' ]]
+vcs_info:50> [[ -n all ]]
+vcs_info:51> enabled=( bzr cdv cvs darcs fossil git hg mtn p4 svk svn tla )
+vcs_info:52> zstyle -a :vcs_info:-init-:default:-all- disable disabled
+vcs_info:55> zstyle -a :vcs_info:-init-:default:-all- disable-patterns dps
+vcs_info:65> VCS_INFO_maxexports
+VCS_INFO_maxexports:5> setopt localoptions NO_shwordsplit unset
+VCS_INFO_maxexports:7> zstyle -s :vcs_info:-init-:default:-all- max-exports maxexports
+VCS_INFO_maxexports:7> maxexports=2
+VCS_INFO_maxexports:8> [[ 2 != <-> ]]
+VCS_INFO_maxexports:8> (( maxexports < 1 ))
+VCS_INFO_maxexports:13> return 0
+vcs_info:67> (( found = 0 ))
+vcs_info:68> vcs=bzr
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:bzr:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=bzr
+vcs_info:77> VCS_INFO_detect_bzr
+VCS_INFO_detect_bzr:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_bzr:7> [[ '' == --flavours ]]
+VCS_INFO_detect_bzr:9> VCS_INFO_check_com bzr
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case bzr (/*)
+VCS_INFO_check_com:7> case bzr (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_bzr:9> return 1
+vcs_info:68> vcs=cdv
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cdv:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cdv
+vcs_info:77> VCS_INFO_detect_cdv
+VCS_INFO_detect_cdv:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cdv:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cdv:9> VCS_INFO_check_com cdv
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cdv (/*)
+VCS_INFO_check_com:7> case cdv (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cdv:9> return 1
+vcs_info:68> vcs=cvs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:cvs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=cvs
+vcs_info:77> VCS_INFO_detect_cvs
+VCS_INFO_detect_cvs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_cvs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_cvs:9> VCS_INFO_check_com cvs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case cvs (/*)
+VCS_INFO_check_com:7> case cvs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_cvs:9> return 1
+vcs_info:68> vcs=darcs
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:darcs:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=darcs
+vcs_info:77> VCS_INFO_detect_darcs
+VCS_INFO_detect_darcs:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_darcs:7> [[ '' == --flavours ]]
+VCS_INFO_detect_darcs:9> VCS_INFO_check_com darcs
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case darcs (/*)
+VCS_INFO_check_com:7> case darcs (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_darcs:9> return 1
+vcs_info:68> vcs=fossil
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:fossil:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=fossil
+vcs_info:77> VCS_INFO_detect_fossil
+VCS_INFO_detect_fossil:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_fossil:7> [[ '' == --flavours ]]
+VCS_INFO_detect_fossil:9> VCS_INFO_check_com fossil
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case fossil (/*)
+VCS_INFO_check_com:7> case fossil (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_fossil:9> return 1
+vcs_info:68> vcs=git
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:git:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=git
+vcs_info:77> VCS_INFO_detect_git
+VCS_INFO_detect_git:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_git:7> [[ '' == --flavours ]]
+VCS_INFO_detect_git:9> VCS_INFO_check_com git
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case git (/*)
+VCS_INFO_check_com:7> case git (*)
+VCS_INFO_check_com:12> (( 1 ))
+VCS_INFO_check_com:12> return 0
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=+VCS_INFO_detect_git:9> git rev-parse --git-dir
+VCS_INFO_detect_git:9> vcs_comm[gitdir]=''
+VCS_INFO_detect_git:15> return 1
+vcs_info:68> vcs=hg
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:hg:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=hg
+vcs_info:77> VCS_INFO_detect_hg
+VCS_INFO_detect_hg:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_hg:7> [[ '' == --flavours ]]
+VCS_INFO_detect_hg:9> VCS_INFO_check_com hg
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case hg (/*)
+VCS_INFO_check_com:7> case hg (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_hg:9> return 1
+vcs_info:68> vcs=mtn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:mtn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=mtn
+vcs_info:77> VCS_INFO_detect_mtn
+VCS_INFO_detect_mtn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_mtn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_mtn:9> VCS_INFO_check_com mtn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case mtn (/*)
+VCS_INFO_check_com:7> case mtn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_mtn:9> return 1
+vcs_info:68> vcs=p4
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:p4:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=p4
+vcs_info:77> VCS_INFO_detect_p4
+VCS_INFO_detect_p4:1> local serverport p4where
+VCS_INFO_detect_p4:3> zstyle -t :vcs_info:p4:default:-all- use-server
+VCS_INFO_detect_p4:23> [[ -n '' ]]
+VCS_INFO_detect_p4:23> return 1
+vcs_info:68> vcs=svk
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svk:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svk
+vcs_info:77> VCS_INFO_detect_svk
+VCS_INFO_detect_svk:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svk:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svk:16> setopt localoptions noksharrays extendedglob
+VCS_INFO_detect_svk:17> local -i fhash
+VCS_INFO_detect_svk:18> fhash=0
+VCS_INFO_detect_svk:20> VCS_INFO_check_com svk
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svk (/*)
+VCS_INFO_check_com:7> case svk (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svk:20> return 1
+vcs_info:68> vcs=svn
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:svn:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=svn
+vcs_info:77> VCS_INFO_detect_svn
+VCS_INFO_detect_svn:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_svn:7> [[ '' == --flavours ]]
+VCS_INFO_detect_svn:9> VCS_INFO_check_com svn
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case svn (/*)
+VCS_INFO_check_com:7> case svn (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_svn:9> return 1
+vcs_info:68> vcs=tla
+vcs_info:69> [[ -n '' ]]
+vcs_info:70> (( 1 == 0 ))
+vcs_info:75> vcs_comm=( )
+vcs_info:76> VCS_INFO_get_cmd
+VCS_INFO_get_cmd:4> local cmd
+VCS_INFO_get_cmd:5> zstyle -s :vcs_info:tla:default:-all- command cmd
+VCS_INFO_get_cmd:6> vcs_comm[cmd]=tla
+vcs_info:77> VCS_INFO_detect_tla
+VCS_INFO_detect_tla:5> setopt localoptions NO_shwordsplit
+VCS_INFO_detect_tla:7> [[ '' == --flavours ]]
+VCS_INFO_detect_tla:9> VCS_INFO_check_com tla
+VCS_INFO_check_com:5> setopt localoptions NO_shwordsplit
+VCS_INFO_check_com:7> case tla (/*)
+VCS_INFO_check_com:7> case tla (*)
+VCS_INFO_check_com:12> (( 0 ))
+VCS_INFO_check_com:15> return 1
+VCS_INFO_detect_tla:9> return 1
+vcs_info:80> (( found == 0 ))
+vcs_info:81> vcs=-quilt-
+vcs_info:81> quiltmode=standalone
+vcs_info:82> VCS_INFO_quilt standalone
+VCS_INFO_quilt:3> (( 1 ))
+VCS_INFO_quilt:24> (( 1 ))
+VCS_INFO_quilt:63> (( 1 ))
+VCS_INFO_quilt:86> (( 1 ))
+VCS_INFO_quilt:92> emulate -L zsh
+VCS_INFO_quilt:93> setopt extendedglob
+VCS_INFO_quilt:94> local mode=standalone
+VCS_INFO_quilt:95> local patches pc qstring root
+VCS_INFO_quilt:96> local -i ret
+VCS_INFO_quilt:97> local context
+VCS_INFO_quilt:98> local -a applied unapplied applied_string unapplied_string quiltcommand quilt_env
+VCS_INFO_quilt:99> local -A hook_com
+VCS_INFO_quilt:101> context=:vcs_info:-quilt-.quilt-standalone:default:-all-
+VCS_INFO_quilt:102> zstyle -t :vcs_info:-quilt-.quilt-standalone:default:-all- use-quilt
+VCS_INFO_quilt:102> return 1
+vcs_info:82> VCS_INFO_set --nvcs
+VCS_INFO_set:7> setopt localoptions noksharrays NO_shwordsplit unset
+VCS_INFO_set:8> local -i i j
+VCS_INFO_set:10> [[ --nvcs == --nvcs ]]
+VCS_INFO_set:11> [[ '' == -preinit- ]]
+VCS_INFO_set:12> i=0
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_0_='
+VCS_INFO_set:12> i=1
+VCS_INFO_set:13> typeset -g 'vcs_info_msg_1_='
+VCS_INFO_set:15> VCS_INFO_nvcsformats
+VCS_INFO_nvcsformats:5> setopt localoptions noksharrays NO_shwordsplit
+VCS_INFO_nvcsformats:6> local c v rr
+VCS_INFO_nvcsformats:8> [[ '' == -preinit- ]]
+VCS_INFO_nvcsformats:13> zstyle -a :vcs_info:-quilt-:default:-all- nvcsformats msgs
+VCS_INFO_nvcsformats:14> (( 0 > maxexports ))
+VCS_INFO_nvcsformats:15> return 0
+VCS_INFO_set:16> [[ '' != -preinit- ]]
+VCS_INFO_set:16> VCS_INFO_hook no-vcs
+VCS_INFO_hook:5> local hook static func
+VCS_INFO_hook:6> local context hook_name
+VCS_INFO_hook:7> local -i ret
+VCS_INFO_hook:8> local -a hooks tmp
+VCS_INFO_hook:9> local -i debug
+VCS_INFO_hook:11> ret=0
+VCS_INFO_hook:12> hook_name=no-vcs
+VCS_INFO_hook:13> shift
+VCS_INFO_hook:14> context=:vcs_info:-quilt-+no-vcs:default:-all-
+VCS_INFO_hook:15> static=:vcs_info-static_hooks:no-vcs
+VCS_INFO_hook:17> zstyle -t :vcs_info:-quilt-+no-vcs:default:-all- debug
+VCS_INFO_hook:17> debug=0
+VCS_INFO_hook:18> (( debug ))
+VCS_INFO_hook:24> zstyle -a :vcs_info-static_hooks:no-vcs hooks hooks
+VCS_INFO_hook:25> (( debug ))
+VCS_INFO_hook:28> zstyle -a :vcs_info:-quilt-+no-vcs:default:-all- hooks tmp
+VCS_INFO_hook:29> (( debug ))
+VCS_INFO_hook:32> hooks+=( )
+VCS_INFO_hook:33> (( 0 == 0 ))
+VCS_INFO_hook:33> return 0
+VCS_INFO_set:19> (( 0 - 1 < 0 ))
+VCS_INFO_set:19> return 0
+vcs_info:83> return 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31402
|
NULL
|
NULL
|
NULL
|
|
31402
|
1229
|
31
|
2026-05-13T08:38:36.151887+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661516151_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-1085727815052050872
|
865138422629296384
|
visual_change
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31401
|
1230
|
24
|
2026-05-13T08:38:35.786516+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661515786_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"bounds":{"left":0.27027926,"top":0.4309657,"width":0.4793883,"height":0.56903434},"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
-1085727815052050872
|
865138422629296384
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31400
|
1229
|
30
|
2026-05-13T08:38:35.786496+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661515786_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-1085727815052050872
|
865138422629296384
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh: Bourne-Again shell script text executable, Unicode text, UTF-8 text
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31397
|
1229
|
28
|
2026-05-13T08:38:20.675034+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661500675_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-1497734120449229536
|
-8934694916276328192
|
visual_change
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ file ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31396
|
1230
|
22
|
2026-05-13T08:38:19.350775+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661499350_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"bounds":{"left":0.27027926,"top":0.4309657,"width":0.4793883,"height":0.56903434},"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
6781208629539466581
|
-8353730564353922816
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31395
|
1229
|
27
|
2026-05-13T08:38:19.302201+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661499302_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
6781208629539466581
|
-8353730564353922816
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31393
|
NULL
|
NULL
|
NULL
|
|
31385
|
1230
|
16
|
2026-05-13T08:37:13.816413+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661433816_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"bounds":{"left":0.27027926,"top":0.4309657,"width":0.4793883,"height":0.56903434},"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
6781208629539466581
|
-8353730564353922816
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31384
|
1229
|
22
|
2026-05-13T08:37:13.816403+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661433816_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
6781208629539466581
|
-8353730564353922816
|
click
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31383
|
1229
|
21
|
2026-05-13T08:37:04.793948+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661424793_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh","depth":4,"on_screen":true,"value":"while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
6312035286386496901
|
-8934624564712543840
|
visual_change
|
accessibility
|
NULL
|
while kill -0 "$pid" 2>/dev/null; do
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31382
|
NULL
|
NULL
|
NULL
|
|
31382
|
1229
|
20
|
2026-05-13T08:37:01.783561+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661421783_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2403603552469165063
|
5496280309939763393
|
visual_change
|
accessibility
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31381
|
1230
|
15
|
2026-05-13T08:37:01.372993+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661421372_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2403603552469165063
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31380
|
1229
|
19
|
2026-05-13T08:37:01.415846+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661421415_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2403603552469165063
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31379
|
NULL
|
NULL
|
NULL
|
|
31376
|
1229
|
16
|
2026-05-13T08:36:49.316087+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661409316_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","depth":4,"on_screen":true,"value":"Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts\nsource lib/screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2403603552469165063
|
5496280309939763393
|
visual_change
|
accessibility
|
NULL
|
Audio files: OK (2507 files, 267M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cd ~/.screenpipe/scripts
source lib/screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31375
|
1230
|
13
|
2026-05-13T08:36:47.143230+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661407143_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Archive DB: will be created
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
7826652889776349268
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
Archive DB: will be created
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31373
|
NULL
|
NULL
|
NULL
|
|
31374
|
1229
|
15
|
2026-05-13T08:36:47.167277+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661407167_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Archive DB: will be created
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
7826652889776349268
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
Archive DB: will be created
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31372
|
NULL
|
NULL
|
NULL
|
|
31369
|
1229
|
12
|
2026-05-13T08:36:40.250751+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661400250_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Archive DB: will be created
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
7826652889776349268
|
5496280309939763393
|
visual_change
|
accessibility
|
NULL
|
Archive DB: will be created
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ source screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31368
|
1230
|
10
|
2026-05-13T08:36:36.804208+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661396804_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2335665969906699025
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31366
|
NULL
|
NULL
|
NULL
|
|
31367
|
1229
|
11
|
2026-05-13T08:36:36.804283+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661396804_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2335665969906699025
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31363
|
1229
|
9
|
2026-05-13T08:36:33.795297+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661393795_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2335665969906699025
|
5496280309939763393
|
visual_change
|
accessibility
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31362
|
1230
|
7
|
2026-05-13T08:36:31.558262+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661391558_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2335665969906699025
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31360
|
NULL
|
NULL
|
NULL
|
|
31361
|
1229
|
8
|
2026-05-13T08:36:31.558281+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661391558_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2335665969906699025
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31353
|
1230
|
2
|
2026-05-13T08:36:09.689347+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661369689_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2335665969906699025
|
5496280309939763393
|
click
|
accessibility
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31352
|
1229
|
4
|
2026-05-13T08:36:06.155582+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661366155_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2335665969906699025
|
5496280309939763393
|
visual_change
|
accessibility
|
NULL
|
NAS mount: OK /Volumes/screenpipe
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31351
|
NULL
|
NULL
|
NULL
|
|
31351
|
1229
|
3
|
2026-05-13T08:36:03.136833+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661363136_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
5637274981786285350
|
308133539208952257
|
visual_change
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31350
|
1230
|
1
|
2026-05-13T08:36:00.884189+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661360884_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
5189263229882239278
|
308133539208952257
|
click
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31348
|
NULL
|
NULL
|
NULL
|
|
31349
|
1229
|
2
|
2026-05-13T08:36:00.822580+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661360822_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
5189263229882239278
|
308133539208952257
|
click
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31343
|
1227
|
54
|
2026-05-13T08:35:48.058495+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661348058_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
5189263229882239278
|
308133539208952257
|
visual_change
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31342
|
1228
|
41
|
2026-05-13T08:35:45.651662+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661345651_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ffmpeg","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
-7422587483688276708
|
308133539208952257
|
click
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31341
|
1227
|
53
|
2026-05-13T08:35:45.655080+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661345655_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ffmpeg","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-7422587483688276708
|
308133539208952257
|
click
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11635 13 May 11:33 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4890 13 May 11:34 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
ffmpeg
Close Tab
⌥⌘1
-zsh...
|
31340
|
NULL
|
NULL
|
NULL
|
|
31340
|
1227
|
52
|
2026-05-13T08:35:38.991485+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661338991_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
-6915817970911194476
|
308133676647905729
|
visual_change
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ls -la ~/.screenpipe/scripts/lib/
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31339
|
1228
|
40
|
2026-05-13T08:35:36.261728+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661336261_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
3195037079670632919
|
308133676647905729
|
click
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31335
|
1227
|
49
|
2026-05-13T08:35:23.379479+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661323379_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
3195037079670632919
|
308133676647905729
|
visual_change
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31334
|
1228
|
38
|
2026-05-13T08:35:20.626817+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661320626_m2.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45894283,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4609375,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5531915,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.55518615,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64744014,"top":1.0,"width":0.09424867,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.64943486,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7280585,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.5043218,"top":1.0,"width":0.010970744,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
5438638211337646673
|
308133676647905729
|
click
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
31333
|
1227
|
48
|
2026-05-13T08:35:11.296490+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661311296_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","depth":4,"on_screen":true,"value":"^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 695 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb\n[2026-05-12 20:19:37] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Frame data dir: OK (283 files, 318M)\n Audio files: OK (2507 files, 267M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n audio_tags: 0\n speakers: 15 (all-time)\n speaker_embeddings: 58 (all-time)\n\n[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating vision tables ✓ 0m00s\n creating audio tables ✓ 0m01s\nError: in prepare, no such column: id\n S idx_ocr_text_install_pk ON ocr_text(install_id, id);\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"PRAGMA table_info(ocr_text);\"\n0|frame_id|INTEGER|1||0\n1|text|TEXT|1||0\n2|text_json|TEXT|0||0\n3|app_name|TEXT|1|''|0\n4|ocr_engine|TEXT|1|'unknown'|0\n5|window_name|TEXT|0||0\n6|focused|BOOLEAN|0|FALSE|0\n7|text_length|INTEGER|0||0\n8|sync_id|TEXT|0||0\n9|synced_at|DATETIME|0||0\n10|redacted_at|INTEGER|0||0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk\nusage: mv [-f | -i | -n] [-hv] source target\n mv [-f | -i | -n] [-v] source ... directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8801488\ndrwxr-xr-x 21 lukas staff 672 12 May 09:21 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810840\ndrwxr-xr-x 21 lukas staff 672 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8810880\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data\n-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8799288\ndrwxr-xr-x 22 lukas staff 704 12 May 20:54 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data\n-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite\n-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11 \n[2026-05-12 20:58:45] ========================================\n[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 20:58:45] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)\n creating tables ✓ 0m00s\n\n[+00m00s] ▶ Reconciling NAS schema with source\n schema: video_chunks ✓ in sync\n schema: frames ✓ in sync\n schema: elements ✓ in sync\n schema: ocr_text ✓ in sync\n schema: ui_events ✓ in sync\n schema: meetings ✓ in sync\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m02s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m37s\n ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name\n acted_at\") SELECT \"frame_id\",\"text\",\"text_json\",\"app_name\",\"ocr_engine\",\"win\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849272\ndrwxr-xr-x 21 lukas staff 672 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 353 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8849304\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data\n-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:25] ========================================\n[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:25] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:06:46] ========================================\n[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:06:46] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:07:36] ========================================\n[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:07:36] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n\n[+00m00s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m00s\n\n[+00m01s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m28s\n ocr_text (2332 rows) ✓ 0m48s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m08s\n meetings (1 rows) ✓ 0m00s\n\n[+04m26s] ▶ Updating FTS indexes\n elements_fts ✓ 0m46s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m01s\n\n[+07m40s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n\n[+07m48s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)\n\n[2026-05-12 21:15:49] Archive DB size: 1.3G\n[2026-05-12 21:15:49] Total time: 8m13s\n[2026-05-12 21:15:49] Sync complete for 2026-05-11\n[2026-05-12 21:15:49] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 8923464\ndrwxr-xr-x 22 lukas staff 704 12 May 21:03 .\ndrwx------+ 96 lukas staff 3072 12 May 20:12 ..\n-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data\n-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite\n-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm\n-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log\n-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\n-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ New file ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 420 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:08] ========================================\n[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:08] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11\n[2026-05-12 21:28:50] ========================================\n[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11\n[2026-05-12 21:28:50] ========================================\n\n[+00m00s] ▶ Preflight checks\n Source DB: OK (4.2G)\n NAS mount: OK /Volumes/screenpipe\n Archive DB: will be created\n Data dir: OK (283 files, 318M)\n\n[+00m00s] ▶ Counting source rows for 2026-05-11\n frames: 6857\n elements: 672129\n ui_events: 7063\n ocr_text: 2332\n meetings: 1\n audio_chunks: 2507\n audio_transcriptions: 226\n\n[+00m01s] ▶ Initialising tables, indexes, FTS\n creating tables ✓ 0m00s\n creating indexes ✓ 0m01s\n creating FTS tables ✓ 0m01s\n\n[+00m03s] ▶ Syncing data for 2026-05-11\n video_chunks ✓ 0m00s\n frames (6857 rows) ✓ 2m24s\n ocr_text (2332 rows) ✓ 0m45s\n ui_events (7063 rows) ✓ 0m01s\n elements (672129 rows) ✓ 1m01s\n meetings (1 rows) ✓ 0m01s\n audio_chunks (2507 rows) ✓ 0m00s\n audio_transcriptions (226 rows) ✓ 0m00s\n\n[+04m15s] ▶ Updating FTS indexes\n elements_fts ✓ 0m48s\n frames_fts ✓ 2m27s\n ui_events_fts ✓ 0m00s\n audio_transcriptions_fts ✓ 0m00s\n\n[+07m30s] ▶ Verifying DB\n frames: 6857 / 6857 ✓\n elements: 672129 / 672129 ✓\n ui_events: 7063 / 7063 ✓\n ocr_text: 2332 / 2332 ✓\n meetings: 1 / 1 ✓\n audio_chunks: 2507 / 2507 ✓\n audio_transcriptions: 226 / 226 ✓\n\n[+07m39s] ▶ Copying data folder for 2026-05-11\n rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)\n\n[+07m41s] ▶ Copying screenpipe logs for 2026-05-11\n rsync logs → NAS ✓ 1 file(s), 520K\n\n[2026-05-12 21:36:31] Archive DB size: 1.3G\n[2026-05-12 21:36:31] Total time: 7m41s\n[2026-05-12 21:36:31] Sync complete for 2026-05-11\n[2026-05-12 21:36:31] ========================================\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop\nscreenpipe stopped\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status\n{\n \"status\": \"degraded\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"stale\",\n \"last_frame\": \"2026-05-13T11:27:35+03:00\",\n \"uptime\": 7854.077230416,\n \"fps\": 0.27488907183634176,\n \"frames\": 2159\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status\nsp-status='curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ curl -s http://localhost:3030/health | jq \"{status, frame_status, audio_status, last_frame: .last_frame_timestamp, uptime: .pipeline.uptime_secs, fps: .pipeline.capture_fps_actual, frames: .pipeline.frames_captured}\"\n{\n \"status\": \"healthy\",\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 297 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n \"frame_status\": \"ok\",\n \"audio_status\": \"ok\",\n \"last_frame\": \"2026-05-13T11:28:00+03:00\",\n \"uptime\": 7879.209718708,\n \"fps\": 0.27426608468981734,\n \"frames\": 2161\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 139 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 9468000\ndrwxr-xr-x 24 lukas staff 768 13 May 11:25 .\ndrwx------+ 96 lukas staff 3072 13 May 09:16 ..\n-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store\n-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id\n-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash\ndrwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data\n-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes\n-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log\n-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log\n-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log\n-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log\n-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log\n-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log\n-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log\n-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log\n-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh\n-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk\n-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak\n-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts\n-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll\ntotal 48\ndrwxrwxrwx 5 lukas staff 160 13 May 10:24 .\ndrwxr-xr-x 5 lukas staff 160 13 May 11:26 ..\n-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh\n-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh\n-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11\n/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s\n\n# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────\n\ndb_init_tables() {\n run_sqlite_heredoc creating: No such file or directory\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh\n#!/bin/bash\n# screenpipe_sync_helpers.sh\n# Helper functions for screenpipe sync scripts\n# Source this file in other scripts to use the helpers\n\n# ─── CONFIG ───────────────────────────────────────────────────────────────────\n# These can be overridden by the sourcing script\nSCRIPT_START=${SCRIPT_START:-$(date +%s)}\nDB_SRC=\"${DB_SRC:-$HOME/.screenpipe/db.sqlite}\"\nLOG_FILE=\"${LOG_FILE:-$HOME/.screenpipe/sync.log}\"\n# ──────────────────────────────────────────────────────────────────────────────\n\n# ─── HELPERS ──────────────────────────────────────────────────────────────────\n\nlog() {\n local msg=\"[$(date '+%Y-%m-%d %H:%M:%S')] $*\"\n echo \"$msg\" | tee -a \"$LOG_FILE\"\n}\n\nstep() {\n local now=$(date +%s)\n local elapsed=$(( now - SCRIPT_START ))\n local min=$(( elapsed / 60 ))\n local sec=$(( elapsed % 60 ))\n printf \"\\n[+%02dm%02ds] ▶ %s\\n\" \"$min\" \"$sec\" \"$*\" | tee -a \"$LOG_FILE\"\n}\n\nrun_sqlite_heredoc() {\n local label=\"$1\"\n local sql=\"$2\"\n local start=$(date +%s)\n\n printf \" %-36s \" \"$label\"\n\n sqlite3 \"$DB_SRC\" <<< \"$sql\" &\n local pid=$!\n local spin=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')\n local i=0\n while kill -0 \"$pid\" 2>/dev/null; do\n printf \"\\r %-36s %s \" \"$label\" \"${spin[$i]}\"\n i=$(( (i + 1) % 10 ))\n sleep 0.2\n done\n wait \"$pid\"\n local rc=$?\n if [ $rc -ne 0 ]; then\n printf \"\\r %-36s ✗ FAILED\\n\" \"$label\" | tee -a \"$LOG_FILE\"\n exit $rc\n fi\n\n local dur=$(( $(date +%s) - start ))\n printf \"\\r %-36s ✓ %dm%02ds\\n\" \"$label\" \"$(( dur / 60 ))\" \"$(( dur % 60 ))\" | tee -a \"$LOG_FILE\"\n}\n\ncheck() {\n local label=\"$1\" got=\"$2\" expected=\"$3\"\n if [ \"$got\" -eq \"$expected\" ]; then\n printf \" %-20s %s / %s ✓\\n\" \"$label:\" \"$got\" \"$expected\"\n else\n printf \" %-20s %s / %s ✗ MISMATCH\\n\" \"$label:\" \"$got\" \"$expected\"\n fi\n}\n# ──────────────────────────────────────────────────────────────────────────────\n\n# If this script is executed directly (not sourced), run a test\nif [[ \"${BASH_SOURCE[0]}\" == \"${0}\" ]]; then\n echo \"screenpipe_sync_helpers.sh - Helper functions test\"\n echo \"This script should be sourced, not executed directly.\"\n echo \"\"\n echo \"Usage:\"\n echo \" source ./lib/screenpipe_sync_helpers.sh\"\n echo \"\"\n echo \"Available functions:\"\n echo \" log(msg)\"\n echo \" step(msg)\"\n echo \" run_sqlite_heredoc(label, sql)\"\n echo \" check(label, got, expected)\"\nfi\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.3940972,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3982639,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59097224,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5951389,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7878472,"top":0.05888889,"width":0.196875,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7920139,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95625,"top":0.032222223,"width":0.03888889,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.4888889,"top":0.033333335,"width":0.022916667,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
5438638211337646673
|
308133676647905729
|
visual_change
|
accessibility
|
NULL
|
^G Get Help ^O WriteOut ^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] Screenpipe sync starting for: 2026-05-11
UW PICO 5.09 New Buffer
[ Read 695 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[2026-05-12 20:19:37] install_id: 2ff6574c-4272-4dbf-a20b-434b024c65fb
[2026-05-12 20:19:37] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Frame data dir: OK (283 files, 318M)
Audio files: OK (2507 files, 267M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
audio_tags: 0
speakers: 15 (all-time)
speaker_embeddings: 58 (all-time)
[+00m01s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating vision tables ✓ 0m00s
creating audio tables ✓ 0m01s
Error: in prepare, no such column: id
S idx_ocr_text_install_pk ON ocr_text(install_id, id);
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "PRAGMA table_info(ocr_text);"
0|frame_id|INTEGER|1||0
1|text|TEXT|1||0
2|text_json|TEXT|0||0
3|app_name|TEXT|1|''|0
4|ocr_engine|TEXT|1|'unknown'|0
5|window_name|TEXT|0||0
6|focused|BOOLEAN|0|FALSE|0
7|text_length|INTEGER|0||0
8|sync_id|TEXT|0||0
9|synced_at|DATETIME|0||0
10|redacted_at|INTEGER|0||0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano --version
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh-bakk
usage: mv [-f | -i | -n] [-hv] source target
mv [-f | -i | -n] [-v] source ... directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8801488
drwxr-xr-x 21 lukas staff 672 12 May 09:21 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3613 lukas staff 115616 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4488413184 12 May 20:51 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 15721952 12 May 20:53 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270317 12 May 20:53 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ mv screenpipe_sync.sh screenpipe_sync.sh-bakk
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810840
drwxr-xr-x 21 lukas staff 672 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3615 lukas staff 115680 12 May 20:53 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8810880
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3619 lukas staff 115808 12 May 20:54 data
-rw-r--r--@ 1 lukas staff 4492152832 12 May 20:54 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16615992 12 May 20:54 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 270865 12 May 20:54 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8799288
drwxr-xr-x 22 lukas staff 704 12 May 20:54 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3629 lukas staff 116128 12 May 20:57 data
-rw-r--r--@ 1 lukas staff 4495654912 12 May 20:56 db.sqlite
-rw-r--r--@ 1 lukas staff 32768 12 May 20:21 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 6357192 12 May 20:57 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 271226 12 May 20:56 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 19714 12 May 20:54 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9058 12 May 20:19 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 20:58:45] ========================================
[2026-05-12 20:58:45] Screenpipe sync starting for: 2026-05-11
[2026-05-12 20:58:45] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
[+00m00s] ▶ Initialising tables (CREATE IF NOT EXISTS)
creating tables ✓ 0m00s
[+00m00s] ▶ Reconciling NAS schema with source
schema: video_chunks ✓ in sync
schema: frames ✓ in sync
schema: elements ✓ in sync
schema: ocr_text ✓ in sync
schema: ui_events ✓ in sync
schema: meetings ✓ in sync
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m37s
ocr_text (2332 rows) ⠋ Parse error near line 3: ambiguous column name: app_name
acted_at") SELECT "frame_id","text","text_json","app_name","ocr_engine","win
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849272
drwxr-xr-x 21 lukas staff 672 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3651 lukas staff 116832 12 May 21:02 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273267 12 May 21:02 screenpipe.2026-05-12.0.log
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ Read 353 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8849304
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 20:14 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3653 lukas staff 116896 12 May 21:03 data
-rw-r--r--@ 1 lukas staff 4511797248 12 May 21:03 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16665432 12 May 21:03 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 273781 12 May 21:03 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15135 12 May 21:03 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 9771 12 May 21:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:25] ========================================
[2026-05-12 21:06:25] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:25] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:25] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:06:46] ========================================
[2026-05-12 21:06:46] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:06:46] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:06:46] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:07:36] ========================================
[2026-05-12 21:07:36] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:07:36] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
[+00m00s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m01s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m28s
ocr_text (2332 rows) ✓ 0m48s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m08s
meetings (1 rows) ✓ 0m00s
[+04m26s] ▶ Updating FTS indexes
elements_fts ✓ 0m46s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m01s
[+07m40s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
[+07m48s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m25s (283 files, 318M)
[2026-05-12 21:15:49] Archive DB size: 1.3G
[2026-05-12 21:15:49] Total time: 8m13s
[2026-05-12 21:15:49] Sync complete for 2026-05-11
[2026-05-12 21:15:49] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ open .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 8923464
drwxr-xr-x 22 lukas staff 704 12 May 21:03 .
drwx------+ 96 lukas staff 3072 12 May 20:12 ..
-rw-r--r--@ 1 lukas staff 6148 12 May 21:25 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3739 lukas staff 119648 12 May 21:24 data
-rw-r--r--@ 1 lukas staff 4549767168 12 May 21:24 db.sqlite
-rw-r--r--@ 1 lukas staff 65536 12 May 21:01 db.sqlite-shm
-rw-r--r--@ 1 lukas staff 16611872 12 May 21:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 283731 12 May 21:24 screenpipe.2026-05-12.0.log
-rwxr-xr-x 1 lukas staff 15130 12 May 21:07 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
-rw-r--r--@ 1 lukas staff 11815 12 May 21:15 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm screenpipe_sync.sh
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
UW PICO 5.09 New Buffer
[ Read 420 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:08] ========================================
[2026-05-12 21:28:08] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:08] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
[2026-05-12 21:28:08] ERROR: NAS not mounted at /Volumes/Test/screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-05-11
[2026-05-12 21:28:50] ========================================
[2026-05-12 21:28:50] Screenpipe sync starting for: 2026-05-11
[2026-05-12 21:28:50] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK (4.2G)
NAS mount: OK /Volumes/screenpipe
Archive DB: will be created
Data dir: OK (283 files, 318M)
[+00m00s] ▶ Counting source rows for 2026-05-11
frames: 6857
elements: 672129
ui_events: 7063
ocr_text: 2332
meetings: 1
audio_chunks: 2507
audio_transcriptions: 226
[+00m01s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m01s
[+00m03s] ▶ Syncing data for 2026-05-11
video_chunks ✓ 0m00s
frames (6857 rows) ✓ 2m24s
ocr_text (2332 rows) ✓ 0m45s
ui_events (7063 rows) ✓ 0m01s
elements (672129 rows) ✓ 1m01s
meetings (1 rows) ✓ 0m01s
audio_chunks (2507 rows) ✓ 0m00s
audio_transcriptions (226 rows) ✓ 0m00s
[+04m15s] ▶ Updating FTS indexes
elements_fts ✓ 0m48s
frames_fts ✓ 2m27s
ui_events_fts ✓ 0m00s
audio_transcriptions_fts ✓ 0m00s
[+07m30s] ▶ Verifying DB
frames: 6857 / 6857 ✓
elements: 672129 / 672129 ✓
ui_events: 7063 / 7063 ✓
ocr_text: 2332 / 2332 ✓
meetings: 1 / 1 ✓
audio_chunks: 2507 / 2507 ✓
audio_transcriptions: 226 / 226 ✓
[+07m39s] ▶ Copying data folder for 2026-05-11
rsync 2026-05-11/ → NAS ✓ 0m01s (283 files, 318M)
[+07m41s] ▶ Copying screenpipe logs for 2026-05-11
rsync logs → NAS ✓ 1 file(s), 520K
[2026-05-12 21:36:31] Archive DB size: 1.3G
[2026-05-12 21:36:31] Total time: 7m41s
[2026-05-12 21:36:31] Sync complete for 2026-05-11
[2026-05-12 21:36:31] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-stop
screenpipe stopped
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
{
"status": "degraded",
"frame_status": "ok",
"audio_status": "stale",
"last_frame": "2026-05-13T11:27:35+03:00",
"uptime": 7854.077230416,
"fps": 0.27488907183634176,
"frames": 2159
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
UW PICO 5.09 New Buffer
[ Read 139 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
/Users/lukas/.screenpipe/scripts/screenpipe_sync.sh: line 28: /Users/lukas/.screenpipe/scripts/lib/lib/screenpipe_sync_files.sh: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 9468000
drwxr-xr-x 24 lukas staff 768 13 May 11:25 .
drwx------+ 96 lukas staff 3072 13 May 09:16 ..
-rw-r--r--@ 1 lukas staff 10244 13 May 11:26 .DS_Store
-rw-r--r--@ 1 lukas staff 37 11 May 20:54 .sync_install_id
-rw-r--r-- 1 lukas staff 0 10 May 14:43 clipboard-disabled-after-crash
drwxr-xr-x 3996 lukas staff 127872 13 May 11:31 data
-rw-r--r--@ 1 lukas staff 4844216320 13 May 11:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 13 May 09:17 db.sqlite-shm
-rw-r--r-- 1 lukas staff 955872 13 May 11:31 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 10 May 11:39 pipes
-rw-r--r-- 1 lukas staff 28408 6 May 21:02 screenpipe.2026-05-06.0.log
-rw-r--r-- 1 lukas staff 566164 7 May 21:50 screenpipe.2026-05-07.0.log
-rw-r--r-- 1 lukas staff 382102 8 May 22:20 screenpipe.2026-05-08.0.log
-rw-r--r-- 1 lukas staff 167023 9 May 23:04 screenpipe.2026-05-09.0.log
-rw-r--r-- 1 lukas staff 88266 10 May 23:51 screenpipe.2026-05-10.0.log
-rw-r--r-- 1 lukas staff 528943 11 May 22:54 screenpipe.2026-05-11.0.log
-rw-r--r-- 1 lukas staff 294131 12 May 21:46 screenpipe.2026-05-12.0.log
-rw-r--r-- 1 lukas staff 86812 13 May 11:31 screenpipe.2026-05-13.0.log
-rwxr-xr-x 1 lukas staff 18401 12 May 21:28 screenpipe_sync.sh
-rwxr-xr-x@ 1 lukas staff 32005 11 May 20:54 screenpipe_sync.sh-bakk
-rwxr-xr-x@ 1 lukas staff 14994 6 May 20:26 screenpipe_sync.sh.bak
-rwxr-xr-x@ 1 lukas staff 21485 10 May 13:34 screenpipe_sync.sh.bak2
drwxr-xr-x 5 lukas staff 160 13 May 11:26 scripts
-rw-r--r--@ 1 lukas staff 13813 12 May 21:36 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd scripts/lib
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ll
total 48
drwxrwxrwx 5 lukas staff 160 13 May 10:24 .
drwxr-xr-x 5 lukas staff 160 13 May 11:26 ..
-rwxrwxrwx 1 lukas staff 11643 13 May 10:24 screenpipe_sync_db.sh
-rwxrwxrwx 1 lukas staff 4896 13 May 11:22 screenpipe_sync_files.sh
-rwxrwxrwx 1 lukas staff 2997 13 May 10:23 screenpipe_sync_helpers.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_db.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ nano screenpipe_sync_files.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ ~/.screenpipe/scripts/screenpipe_sync.sh 2026-05-11
/Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_db.sh: line 13: /Users/lukas/.screenpipe/scripts/lib/screenpipe_sync_helpers.s
# ─── DB FUNCTIONS ─────────────────────────────────────────────────────────────
db_init_tables() {
run_sqlite_heredoc creating: No such file or directory
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $ cat ~/.screenpipe/scripts/lib/screenpipe_sync_helpers.sh
#!/bin/bash
# screenpipe_sync_helpers.sh
# Helper functions for screenpipe sync scripts
# Source this file in other scripts to use the helpers
# ─── CONFIG ───────────────────────────────────────────────────────────────────
# These can be overridden by the sourcing script
SCRIPT_START=${SCRIPT_START:-$(date +%s)}
DB_SRC="${DB_SRC:-$HOME/.screenpipe/db.sqlite}"
LOG_FILE="${LOG_FILE:-$HOME/.screenpipe/sync.log}"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# If this script is executed directly (not sourced), run a test
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
echo "screenpipe_sync_helpers.sh - Helper functions test"
echo "This script should be sourced, not executed directly."
echo ""
echo "Usage:"
echo " source ./lib/screenpipe_sync_helpers.sh"
echo ""
echo "Available functions:"
echo " log(msg)"
echo " step(msg)"
echo " run_sqlite_heredoc(label, sql)"
echo " check(label, got, expected)"
fi
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/scripts/lib $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
-zsh...
|
31332
|
NULL
|
NULL
|
NULL
|
|
31332
|
1227
|
47
|
2026-05-13T08:35:02.209836+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-13/1778 /Users/lukas/.screenpipe/data/data/2026-05-13/1778661302209_m1.jpg...
|
iTerm2
|
-zsh
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
|