|
72382
|
1765
|
9
|
2026-04-22T15:41:31.008439+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872491008_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
3185304989226801137
|
-8655918911477598313
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)...
|
72381
|
NULL
|
|
72383
|
1764
|
5
|
2026-04-22T15:41:33.881363+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872493881_m1.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.028819444,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.051736113,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.075,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.09826389,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.121527776,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4576389,"top":0.0,"width":0.165625,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.48333332,"top":0.0,"width":0.0625,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.54965276,"top":0.0,"width":0.17604166,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.48333332,"top":0.006666667,"width":0.10243055,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.58958334,"top":0.003888889,"width":0.30381945,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4576389,"top":0.054444443,"width":0.54236114,"height":0.04222222},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4576389,"top":0.054444443,"width":0.12083333,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.43819445,"top":0.054444443,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.13388889,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.47430557,"top":0.13388889,"width":0.13645834,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"bounds":{"left":0.46875,"top":0.1561111,"width":0.0625,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.2,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"bounds":{"left":0.47430557,"top":0.2,"width":0.119444445,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"bounds":{"left":0.46875,"top":0.22166666,"width":0.07361111,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.26555556,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test with MCP Inspector","depth":16,"bounds":{"left":0.47430557,"top":0.26555556,"width":0.13645834,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npx @modelcontextprotocol/inspector dist/index.js","depth":16,"bounds":{"left":0.46875,"top":0.28722224,"width":0.278125,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":1.0,"top":0.123333335,"width":-0.014583349,"height":0.031111112},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🐛 Troubleshooting","depth":14,"bounds":{"left":0.4576389,"top":0.35222223,"width":0.54236114,"height":0.04222222},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🐛 Troubleshooting","depth":15,"bounds":{"left":0.4576389,"top":0.35222223,"width":0.14375,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🐛 Troubleshooting","depth":14,"bounds":{"left":0.43819445,"top":0.35222223,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.5125,"top":0.42277777,"width":0.027777778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"bounds":{"left":0.75243056,"top":0.42277777,"width":0.043055557,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.46736112,"top":0.46388888,"width":0.094444446,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"bounds":{"left":0.6041667,"top":0.46388888,"width":0.196875,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.46736112,"top":0.505,"width":0.08680555,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"bounds":{"left":0.6041667,"top":0.505,"width":0.30173612,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.46736112,"top":0.5461111,"width":0.06527778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"bounds":{"left":0.6041667,"top":0.5461111,"width":0.33958334,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"bounds":{"left":0.46736112,"top":0.5872222,"width":0.11805555,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"bounds":{"left":0.6041667,"top":0.5872222,"width":0.28368056,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.5125,"top":0.42277777,"width":0.027777778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.46736112,"top":0.46388888,"width":0.094444446,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.46736112,"top":0.505,"width":0.08680555,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.46736112,"top":0.5461111,"width":0.06527778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-3852077161589438346
|
-4913595457851464002
|
idle
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting...
|
NULL
|
NULL
|
|
72384
|
1765
|
10
|
2026-04-22T15:41:34.255696+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872494255_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation
Clone and setup
:
git clone https://github.com/sourcegate/mcp-fathom-server.git
cd
mcp-fathom-server
npm install
npm run build
Copy
Configure your API key
:
cp .env.example .env
#
Edit .env and add your Fathom API key
Copy
Get your Fathom API key
:
Log in to
Fathom
Fathom
Go to Settings → API
Generate a new API key
Copy it to your
.env
file
Add to Claude Desktop
:
Edit your Claude Desktop configuration file:
macOS
:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers"
: {
"fathom"
: {
"command"
:
"
node
"
,
"args"
: [
"
/absolute/path/to/mcp-fathom-server/dist/index.js
"
],
"env"
: {
"FATHOM_API_KEY"
:
"
your-api-key-here
"
}
}
}
}
Copy
Restart Claude Desktop
and you're ready to go! 🎉
💬 Usage Examples
💬 Usage Examples
Permalink: 💬 Usage Examples
Once configured, you can ask Claude natural language questions about your meetings:
"Find me meetings about recruiting"
"Show me all external meetings from last week"
"Search for meetings where we discussed product launches"
"List meetings with [EMAIL]"
"Find meetings with action items about hiring"
"What did we discuss in our Q1 planning meetings?"
Copy
Claude will automatically choose the right tool and search method based on your query.
🔧 Available Tools
🔧 Available Tools
Permalink: 🔧 Available Tools
list_meetings
list_meetings
Permalink: list_meetings
Retrieves meetings with optional filters:
calendar_invitees
: Filter by attendee emails...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"bounds":{"left":0.47839096,"top":0.070231445,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"bounds":{"left":0.47839096,"top":0.07302474,"width":0.095578454,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"bounds":{"left":0.48138297,"top":0.057861134,"width":0.03274601,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"bounds":{"left":0.49202126,"top":0.06424581,"width":0.019448139,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"bounds":{"left":0.51678854,"top":0.057861134,"width":0.03873005,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"bounds":{"left":0.52792555,"top":0.06424581,"width":0.02443484,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"bounds":{"left":0.75265956,"top":0.059457302,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"bounds":{"left":0.76462764,"top":0.057861134,"width":0.011303191,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.02244016,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.05036569,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.057347074,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.036901597,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"bounds":{"left":0.5493683,"top":0.0,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"bounds":{"left":0.5621675,"top":0.0,"width":0.008643617,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"bounds":{"left":0.5,"top":0.014365523,"width":0.058011968,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"bounds":{"left":0.55801195,"top":0.014365523,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"bounds":{"left":0.4893617,"top":0.046288908,"width":0.10488697,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"bounds":{"left":0.5,"top":0.07821229,"width":0.018118352,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5181183,"top":0.07821229,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"bounds":{"left":0.5227726,"top":0.080207504,"width":0.17154256,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"bounds":{"left":0.5,"top":0.10055866,"width":0.022938829,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.52293885,"top":0.10055866,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"bounds":{"left":0.5277593,"top":0.102553874,"width":0.11702128,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"bounds":{"left":0.49468085,"top":0.14445332,"width":0.005319149,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"bounds":{"left":0.5,"top":0.16001596,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.16001596,"width":0.046210106,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"bounds":{"left":0.50548536,"top":0.17597765,"width":0.021775266,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.17597765,"width":0.040724736,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"bounds":{"left":0.5109708,"top":0.1915403,"width":0.02443484,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5354056,"top":0.1915403,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.54089093,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"bounds":{"left":0.54355055,"top":0.1915403,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.55452126,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"bounds":{"left":0.49468085,"top":0.1915403,"width":0.065159574,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"bounds":{"left":0.5109708,"top":0.207502,"width":0.016289894,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"bounds":{"left":0.52726066,"top":0.207502,"width":0.008144947,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5354056,"top":0.207502,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"bounds":{"left":0.53806514,"top":0.207502,"width":0.13331117,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.67137635,"top":0.207502,"width":0.0028257978,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"bounds":{"left":0.49468085,"top":0.207502,"width":0.18484043,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"bounds":{"left":0.5109708,"top":0.22306465,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.22306465,"width":0.038065158,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"bounds":{"left":0.5162899,"top":0.2386273,"width":0.043550532,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.55984044,"top":0.2386273,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5653258,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"bounds":{"left":0.56798536,"top":0.2386273,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.6143617,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"bounds":{"left":0.49468085,"top":0.254589,"width":0.018949468,"height":0.060255386},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.1368715,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"bounds":{"left":0.5,"top":0.34357542,"width":0.059840426,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"bounds":{"left":0.55984044,"top":0.34317636,"width":0.064328454,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.0696476,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"bounds":{"left":0.4800532,"top":0.38028732,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"bounds":{"left":0.4893617,"top":0.4253791,"width":0.2096077,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"bounds":{"left":0.49468085,"top":0.46927375,"width":0.1549202,"height":0.09177973},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.46169195,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"bounds":{"left":0.4893617,"top":0.5897845,"width":0.21160239,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.06333112,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"bounds":{"left":0.4800532,"top":0.62649643,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.67597765,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.67677575,"width":0.051861703,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.67478055,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"bounds":{"left":0.4893617,"top":0.71109337,"width":0.094913565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"bounds":{"left":0.50166225,"top":0.745012,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"bounds":{"left":0.5497008,"top":0.7430168,"width":0.06216755,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
541899328270087423
|
-301909439424084290
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation
Clone and setup
:
git clone https://github.com/sourcegate/mcp-fathom-server.git
cd
mcp-fathom-server
npm install
npm run build
Copy
Configure your API key
:
cp .env.example .env
#
Edit .env and add your Fathom API key
Copy
Get your Fathom API key
:
Log in to
Fathom
Fathom
Go to Settings → API
Generate a new API key
Copy it to your
.env
file
Add to Claude Desktop
:
Edit your Claude Desktop configuration file:
macOS
:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers"
: {
"fathom"
: {
"command"
:
"
node
"
,
"args"
: [
"
/absolute/path/to/mcp-fathom-server/dist/index.js
"
],
"env"
: {
"FATHOM_API_KEY"
:
"
your-api-key-here
"
}
}
}
}
Copy
Restart Claude Desktop
and you're ready to go! 🎉
💬 Usage Examples
💬 Usage Examples
Permalink: 💬 Usage Examples
Once configured, you can ask Claude natural language questions about your meetings:
"Find me meetings about recruiting"
"Show me all external meetings from last week"
"Search for meetings where we discussed product launches"
"List meetings with [EMAIL]"
"Find meetings with action items about hiring"
"What did we discuss in our Q1 planning meetings?"
Copy
Claude will automatically choose the right tool and search method based on your query.
🔧 Available Tools
🔧 Available Tools
Permalink: 🔧 Available Tools
list_meetings
list_meetings
Permalink: list_meetings
Retrieves meetings with optional filters:
calendar_invitees
: Filter by attendee emails...
|
NULL
|
NULL
|
|
72385
|
1764
|
6
|
2026-04-22T15:42:05.101796+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872525101_m1.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation
Clone and setup
:
git clone https://github.com/sourcegate/mcp-fathom-server.git
cd
mcp-fathom-server
npm install
npm run build
Copy
Configure your API key
:
cp .env.example .env
#
Edit .env and add your Fathom API key
Copy
Get your Fathom API key
:
Log in to
Fathom
Fathom
Go to Settings → API
Generate a new API key
Copy it to your
.env
file
Add to Claude Desktop
:
Edit your Claude Desktop configuration file:
macOS
:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers"
: {
"fathom"
: {
"command"
:
"
node
"
,
"args"
: [
"
/absolute/path/to/mcp-fathom-server/dist/index.js
"
],
"env"
: {
"FATHOM_API_KEY"
:
"
your-api-key-here
"
}
}
}
}
Copy
Restart Claude Desktop
and you're ready to go! 🎉
💬 Usage Examples
💬 Usage Examples
Permalink: 💬 Usage Examples
Once configured, you can ask Claude natural language questions about your meetings:
"Find me meetings about recruiting"
"Show me all external meetings from last week"
"Search for meetings where we discussed product launches"
"List meetings with [EMAIL]"
"Find meetings with action items about hiring"
"What did we discuss in our Q1 planning meetings?"
Copy
Claude will automatically choose the right tool and search method based on your query.
🔧 Available Tools
🔧 Available Tools
Permalink: 🔧 Available Tools
list_meetings
list_meetings
Permalink: list_meetings
Retrieves meetings with optional filters:
calendar_invitees
: Filter by attendee emails
calendar_invitees_domains
: Filter by company domains
created_after
/
created_before
: Date range filters
meeting_type
: all, internal, or external
include_transcript
: Include full transcripts
recorded_by
: Filter by meeting owner
teams
: Filter by team names
search_meetings
search_meetings
Permalink: search_meetings
Searches meetings by keywords:
search_term
: The keyword/phrase to search for
include_transcript
: Search within transcripts (slower but more comprehensive)
🛠️ Development
🛠️ Development
Permalink: 🛠️ Development
#
Run in development mode
npm run dev
#
Build for production
npm run build
#...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.028819444,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.051736113,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.075,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.09826389,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.121527776,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4576389,"top":0.0,"width":0.165625,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.48333332,"top":0.0,"width":0.0625,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.54965276,"top":0.0,"width":0.17604166,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.48333332,"top":0.006666667,"width":0.10243055,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.58958334,"top":0.003888889,"width":0.30381945,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4576389,"top":0.054444443,"width":0.54236114,"height":0.04222222},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4576389,"top":0.054444443,"width":0.12083333,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.43819445,"top":0.054444443,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.13388889,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.47430557,"top":0.13388889,"width":0.13645834,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"bounds":{"left":0.46875,"top":0.1561111,"width":0.0625,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.2,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"bounds":{"left":0.47430557,"top":0.2,"width":0.119444445,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"bounds":{"left":0.46875,"top":0.22166666,"width":0.07361111,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.26555556,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-5779615612712077974
|
-4913595457851472194
|
idle
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation
Clone and setup
:
git clone https://github.com/sourcegate/mcp-fathom-server.git
cd
mcp-fathom-server
npm install
npm run build
Copy
Configure your API key
:
cp .env.example .env
#
Edit .env and add your Fathom API key
Copy
Get your Fathom API key
:
Log in to
Fathom
Fathom
Go to Settings → API
Generate a new API key
Copy it to your
.env
file
Add to Claude Desktop
:
Edit your Claude Desktop configuration file:
macOS
:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers"
: {
"fathom"
: {
"command"
:
"
node
"
,
"args"
: [
"
/absolute/path/to/mcp-fathom-server/dist/index.js
"
],
"env"
: {
"FATHOM_API_KEY"
:
"
your-api-key-here
"
}
}
}
}
Copy
Restart Claude Desktop
and you're ready to go! 🎉
💬 Usage Examples
💬 Usage Examples
Permalink: 💬 Usage Examples
Once configured, you can ask Claude natural language questions about your meetings:
"Find me meetings about recruiting"
"Show me all external meetings from last week"
"Search for meetings where we discussed product launches"
"List meetings with [EMAIL]"
"Find meetings with action items about hiring"
"What did we discuss in our Q1 planning meetings?"
Copy
Claude will automatically choose the right tool and search method based on your query.
🔧 Available Tools
🔧 Available Tools
Permalink: 🔧 Available Tools
list_meetings
list_meetings
Permalink: list_meetings
Retrieves meetings with optional filters:
calendar_invitees
: Filter by attendee emails
calendar_invitees_domains
: Filter by company domains
created_after
/
created_before
: Date range filters
meeting_type
: all, internal, or external
include_transcript
: Include full transcripts
recorded_by
: Filter by meeting owner
teams
: Filter by team names
search_meetings
search_meetings
Permalink: search_meetings
Searches meetings by keywords:
search_term
: The keyword/phrase to search for
include_transcript
: Search within transcripts (slower but more comprehensive)
🛠️ Development
🛠️ Development
Permalink: 🛠️ Development
#
Run in development mode
npm run dev
#
Build for production
npm run build
#...
|
72383
|
NULL
|
|
72386
|
1765
|
11
|
2026-04-22T15:42:05.684643+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872525684_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"bounds":{"left":0.47839096,"top":0.070231445,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"bounds":{"left":0.47839096,"top":0.07302474,"width":0.095578454,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"bounds":{"left":0.48138297,"top":0.057861134,"width":0.03274601,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"bounds":{"left":0.49202126,"top":0.06424581,"width":0.019448139,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"bounds":{"left":0.51678854,"top":0.057861134,"width":0.03873005,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"bounds":{"left":0.52792555,"top":0.06424581,"width":0.02443484,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"bounds":{"left":0.75265956,"top":0.059457302,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"bounds":{"left":0.76462764,"top":0.057861134,"width":0.011303191,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.02244016,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.05036569,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.057347074,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.036901597,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"bounds":{"left":0.5493683,"top":0.0,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"bounds":{"left":0.5621675,"top":0.0,"width":0.008643617,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"bounds":{"left":0.5,"top":0.014365523,"width":0.058011968,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"bounds":{"left":0.55801195,"top":0.014365523,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"bounds":{"left":0.4893617,"top":0.046288908,"width":0.10488697,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"bounds":{"left":0.5,"top":0.07821229,"width":0.018118352,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5181183,"top":0.07821229,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"bounds":{"left":0.5227726,"top":0.080207504,"width":0.17154256,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"bounds":{"left":0.5,"top":0.10055866,"width":0.022938829,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.52293885,"top":0.10055866,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"bounds":{"left":0.5277593,"top":0.102553874,"width":0.11702128,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"bounds":{"left":0.49468085,"top":0.14445332,"width":0.005319149,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"bounds":{"left":0.5,"top":0.16001596,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.16001596,"width":0.046210106,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"bounds":{"left":0.50548536,"top":0.17597765,"width":0.021775266,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.17597765,"width":0.040724736,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"bounds":{"left":0.5109708,"top":0.1915403,"width":0.02443484,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5354056,"top":0.1915403,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.54089093,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"bounds":{"left":0.54355055,"top":0.1915403,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.55452126,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"bounds":{"left":0.49468085,"top":0.1915403,"width":0.065159574,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"bounds":{"left":0.5109708,"top":0.207502,"width":0.016289894,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"bounds":{"left":0.52726066,"top":0.207502,"width":0.008144947,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5354056,"top":0.207502,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"bounds":{"left":0.53806514,"top":0.207502,"width":0.13331117,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.67137635,"top":0.207502,"width":0.0028257978,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"bounds":{"left":0.49468085,"top":0.207502,"width":0.18484043,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"bounds":{"left":0.5109708,"top":0.22306465,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.22306465,"width":0.038065158,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"bounds":{"left":0.5162899,"top":0.2386273,"width":0.043550532,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.55984044,"top":0.2386273,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5653258,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"bounds":{"left":0.56798536,"top":0.2386273,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.6143617,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"bounds":{"left":0.49468085,"top":0.254589,"width":0.018949468,"height":0.060255386},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.1368715,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"bounds":{"left":0.5,"top":0.34357542,"width":0.059840426,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"bounds":{"left":0.55984044,"top":0.34317636,"width":0.064328454,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.0696476,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"bounds":{"left":0.4800532,"top":0.38028732,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"bounds":{"left":0.4893617,"top":0.4253791,"width":0.2096077,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"bounds":{"left":0.49468085,"top":0.46927375,"width":0.1549202,"height":0.09177973},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.46169195,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"bounds":{"left":0.4893617,"top":0.5897845,"width":0.21160239,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.06333112,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"bounds":{"left":0.4800532,"top":0.62649643,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.67597765,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.67677575,"width":0.051861703,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.67478055,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"bounds":{"left":0.4893617,"top":0.71109337,"width":0.094913565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"bounds":{"left":0.50166225,"top":0.745012,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"bounds":{"left":0.5497008,"top":0.7430168,"width":0.06216755,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"bounds":{"left":0.50166225,"top":0.76735836,"width":0.06815159,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"bounds":{"left":0.57147604,"top":0.76536316,"width":0.06798537,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"bounds":{"left":0.50166225,"top":0.7897047,"width":0.035405584,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"bounds":{"left":0.53889626,"top":0.7877095,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"bounds":{"left":0.5422208,"top":0.7897047,"width":0.038065158,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"bounds":{"left":0.58211434,"top":0.7877095,"width":0.044714097,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"bounds":{"left":0.50166225,"top":0.81205106,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"bounds":{"left":0.5362367,"top":0.81005585,"width":0.057845745,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":0.83439744,"width":0.049035903,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"bounds":{"left":0.5525266,"top":0.8324022,"width":0.05668218,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"bounds":{"left":0.50166225,"top":0.8567438,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"bounds":{"left":0.5334109,"top":0.8547486,"width":0.059674203,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"bounds":{"left":0.50166225,"top":0.8790902,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"bounds":{"left":0.517121,"top":0.877095,"width":0.053357713,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.9134078,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.9142059,"width":0.06000665,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.9122107,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4893617,"top":0.9485235,"width":0.079288565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.50166225,"top":0.98244214,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.5334109,"top":0.98044693,"width":0.08427527,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":1.0,"width":0.049035903,"height":-0.004788518},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.5525266,"top":1.0,"width":0.14544548,"height":-0.002793312},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4893617,"top":1.0,"width":0.2785904,"height":-0.03910613},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4893617,"top":1.0,"width":0.057845745,"height":-0.03910613},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.4800532,"top":1.0,"width":0.00930851,"height":-0.03910613},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":1.0,"width":0.0026595744,"height":-0.09616923},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.4973404,"top":1.0,"width":0.0653258,"height":-0.09616923},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test with MCP Inspector","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npx @modelcontextprotocol/inspector dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":1.0,"width":0.00930851,"height":-0.0885874},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🐛 Troubleshooting","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🐛 Troubleshooting","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🐛 Troubleshooting","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
8609697648177375358
|
-4913595457851472194
|
idle
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting...
|
72384
|
NULL
|
|
72387
|
1764
|
7
|
2026-04-22T15:42:36.117631+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872556117_m1.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.028819444,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.051736113,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.075,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.09826389,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.121527776,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-1499271152950813902
|
-518082230127802690
|
idle
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation...
|
NULL
|
NULL
|
|
72388
|
1765
|
12
|
2026-04-22T15:42:36.863336+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872556863_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓
Built for fun by
@petesena
@petesena
❤️
About
About
No description, website, or topics provided.
Resources
Resources
Readme
Readme
License
License
MIT license
MIT license
Activity
Activity
Stars
Stars
8 stars
8
stars
Watchers
Watchers
0 watching
0
watching
Forks
Forks
4 forks
4
forks
Report repository
Report repository
Releases
Releases
Releases
No releases published
Packages
Packages
Packages
No packages published
Contributors 2
Contributors 2
Contributors
2
@sourcegate
sourcegate
sourcegate
@claude
claude Claude
claude
Claude
Languages
Languages
JavaScript 57.8%
JavaScript
57.8%
TypeScript 42.2%
TypeScript
42.2%
Footer
Footer
GitHub Homepage
© 2026 GitHub, Inc.
Footer navigation
Footer navigation
Terms
Terms...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"bounds":{"left":0.47839096,"top":0.070231445,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"bounds":{"left":0.47839096,"top":0.07302474,"width":0.095578454,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"bounds":{"left":0.48138297,"top":0.057861134,"width":0.03274601,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"bounds":{"left":0.49202126,"top":0.06424581,"width":0.019448139,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"bounds":{"left":0.51678854,"top":0.057861134,"width":0.03873005,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"bounds":{"left":0.52792555,"top":0.06424581,"width":0.02443484,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"bounds":{"left":0.75265956,"top":0.059457302,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"bounds":{"left":0.76462764,"top":0.057861134,"width":0.011303191,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.02244016,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.05036569,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.057347074,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.036901597,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"bounds":{"left":0.5493683,"top":0.0,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"bounds":{"left":0.5621675,"top":0.0,"width":0.008643617,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"bounds":{"left":0.5,"top":0.014365523,"width":0.058011968,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"bounds":{"left":0.55801195,"top":0.014365523,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"bounds":{"left":0.4893617,"top":0.046288908,"width":0.10488697,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"bounds":{"left":0.5,"top":0.07821229,"width":0.018118352,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5181183,"top":0.07821229,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"bounds":{"left":0.5227726,"top":0.080207504,"width":0.17154256,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"bounds":{"left":0.5,"top":0.10055866,"width":0.022938829,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.52293885,"top":0.10055866,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"bounds":{"left":0.5277593,"top":0.102553874,"width":0.11702128,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"bounds":{"left":0.49468085,"top":0.14445332,"width":0.005319149,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"bounds":{"left":0.5,"top":0.16001596,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.16001596,"width":0.046210106,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"bounds":{"left":0.50548536,"top":0.17597765,"width":0.021775266,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.17597765,"width":0.040724736,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"bounds":{"left":0.5109708,"top":0.1915403,"width":0.02443484,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5354056,"top":0.1915403,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.54089093,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"bounds":{"left":0.54355055,"top":0.1915403,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.55452126,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"bounds":{"left":0.49468085,"top":0.1915403,"width":0.065159574,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"bounds":{"left":0.5109708,"top":0.207502,"width":0.016289894,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"bounds":{"left":0.52726066,"top":0.207502,"width":0.008144947,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5354056,"top":0.207502,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"bounds":{"left":0.53806514,"top":0.207502,"width":0.13331117,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.67137635,"top":0.207502,"width":0.0028257978,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"bounds":{"left":0.49468085,"top":0.207502,"width":0.18484043,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"bounds":{"left":0.5109708,"top":0.22306465,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.22306465,"width":0.038065158,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"bounds":{"left":0.5162899,"top":0.2386273,"width":0.043550532,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.55984044,"top":0.2386273,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5653258,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"bounds":{"left":0.56798536,"top":0.2386273,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.6143617,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"bounds":{"left":0.49468085,"top":0.254589,"width":0.018949468,"height":0.060255386},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.1368715,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"bounds":{"left":0.5,"top":0.34357542,"width":0.059840426,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"bounds":{"left":0.55984044,"top":0.34317636,"width":0.064328454,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.0696476,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"bounds":{"left":0.4800532,"top":0.38028732,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"bounds":{"left":0.4893617,"top":0.4253791,"width":0.2096077,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"bounds":{"left":0.49468085,"top":0.46927375,"width":0.1549202,"height":0.09177973},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.46169195,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"bounds":{"left":0.4893617,"top":0.5897845,"width":0.21160239,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.06333112,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"bounds":{"left":0.4800532,"top":0.62649643,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.67597765,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.67677575,"width":0.051861703,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.67478055,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"bounds":{"left":0.4893617,"top":0.71109337,"width":0.094913565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"bounds":{"left":0.50166225,"top":0.745012,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"bounds":{"left":0.5497008,"top":0.7430168,"width":0.06216755,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"bounds":{"left":0.50166225,"top":0.76735836,"width":0.06815159,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"bounds":{"left":0.57147604,"top":0.76536316,"width":0.06798537,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"bounds":{"left":0.50166225,"top":0.7897047,"width":0.035405584,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"bounds":{"left":0.53889626,"top":0.7877095,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"bounds":{"left":0.5422208,"top":0.7897047,"width":0.038065158,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"bounds":{"left":0.58211434,"top":0.7877095,"width":0.044714097,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"bounds":{"left":0.50166225,"top":0.81205106,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"bounds":{"left":0.5362367,"top":0.81005585,"width":0.057845745,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":0.83439744,"width":0.049035903,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"bounds":{"left":0.5525266,"top":0.8324022,"width":0.05668218,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"bounds":{"left":0.50166225,"top":0.8567438,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"bounds":{"left":0.5334109,"top":0.8547486,"width":0.059674203,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"bounds":{"left":0.50166225,"top":0.8790902,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"bounds":{"left":0.517121,"top":0.877095,"width":0.053357713,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.9134078,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.9142059,"width":0.06000665,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.9122107,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4893617,"top":0.9485235,"width":0.079288565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.50166225,"top":0.98244214,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.5334109,"top":0.98044693,"width":0.08427527,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":1.0,"width":0.049035903,"height":-0.004788518},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.5525266,"top":1.0,"width":0.14544548,"height":-0.002793312},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4893617,"top":1.0,"width":0.2785904,"height":-0.03910613},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4893617,"top":1.0,"width":0.057845745,"height":-0.03910613},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.4800532,"top":1.0,"width":0.00930851,"height":-0.03910613},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":1.0,"width":0.0026595744,"height":-0.09616923},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.4973404,"top":1.0,"width":0.0653258,"height":-0.09616923},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test with MCP Inspector","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npx @modelcontextprotocol/inspector dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":1.0,"width":0.00930851,"height":-0.0885874},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🐛 Troubleshooting","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🐛 Troubleshooting","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🐛 Troubleshooting","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issue","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issue","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"📄 License","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📄 License","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 📄 License","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT License - see","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file for details.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🤝 Contributing","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🤝 Contributing","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🤝 Contributing","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🙋♀️ Support","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🙋♀️ Support","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🙋♀️ Support","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"If you encounter any issues:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check the","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"troubleshooting section","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"troubleshooting section","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search existing","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub issues","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub issues","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create a new issue with detailed information about your problem","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Status","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Tested and working with GitHub integration ✓","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Built for fun by","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@petesena","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@petesena","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"❤️","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"About","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"About","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No description, website, or topics provided.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Resources","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resources","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Readme","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Readme","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"License","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"License","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Activity","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Activity","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Stars","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stars","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"8 stars","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"8","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"stars","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Watchers","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Watchers","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 watching","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"watching","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Forks","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Forks","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"4 forks","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"4","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"forks","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Report repository","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Report repository","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Releases","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Releases","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Releases","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No releases published","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Packages","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Packages","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Packages","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No packages published","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Contributors 2","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Contributors 2","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributors","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@sourcegate","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"claude Claude","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Languages","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Languages","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JavaScript 57.8%","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JavaScript","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"57.8%","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"TypeScript 42.2%","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeScript","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"42.2%","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Footer","depth":7,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Footer","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub Homepage","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"© 2026 GitHub, Inc.","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Footer navigation","depth":8,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Footer navigation","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Terms","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Terms","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-4790398243628325986
|
-4913595457851463746
|
idle
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓
Built for fun by
@petesena
@petesena
❤️
About
About
No description, website, or topics provided.
Resources
Resources
Readme
Readme
License
License
MIT license
MIT license
Activity
Activity
Stars
Stars
8 stars
8
stars
Watchers
Watchers
0 watching
0
watching
Forks
Forks
4 forks
4
forks
Report repository
Report repository
Releases
Releases
Releases
No releases published
Packages
Packages
Packages
No packages published
Contributors 2
Contributors 2
Contributors
2
@sourcegate
sourcegate
sourcegate
@claude
claude Claude
claude
Claude
Languages
Languages
JavaScript 57.8%
JavaScript
57.8%
TypeScript 42.2%
TypeScript
42.2%
Footer
Footer
GitHub Homepage
© 2026 GitHub, Inc.
Footer navigation
Footer navigation
Terms
Terms...
|
NULL
|
NULL
|
|
72389
|
1764
|
8
|
2026-04-22T15:42:51.486081+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872571486_m1.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.028819444,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.051736113,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.075,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.09826389,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.121527776,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4576389,"top":0.0,"width":0.165625,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.48333332,"top":0.0,"width":0.0625,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.54965276,"top":0.0,"width":0.17604166,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.48333332,"top":0.006666667,"width":0.10243055,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.58958334,"top":0.003888889,"width":0.30381945,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4576389,"top":0.054444443,"width":0.54236114,"height":0.04222222},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4576389,"top":0.054444443,"width":0.12083333,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.43819445,"top":0.054444443,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.13388889,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.47430557,"top":0.13388889,"width":0.13645834,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"bounds":{"left":0.46875,"top":0.1561111,"width":0.0625,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.2,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"bounds":{"left":0.47430557,"top":0.2,"width":0.119444445,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"bounds":{"left":0.46875,"top":0.22166666,"width":0.07361111,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.46875,"top":0.26555556,"width":0.0055555557,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test with MCP Inspector","depth":16,"bounds":{"left":0.47430557,"top":0.26555556,"width":0.13645834,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npx @modelcontextprotocol/inspector dist/index.js","depth":16,"bounds":{"left":0.46875,"top":0.28722224,"width":0.278125,"height":0.018333333},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":1.0,"top":0.123333335,"width":-0.014583349,"height":0.031111112},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🐛 Troubleshooting","depth":14,"bounds":{"left":0.4576389,"top":0.35222223,"width":0.54236114,"height":0.04222222},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🐛 Troubleshooting","depth":15,"bounds":{"left":0.4576389,"top":0.35222223,"width":0.14375,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🐛 Troubleshooting","depth":14,"bounds":{"left":0.43819445,"top":0.35222223,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.5125,"top":0.42277777,"width":0.027777778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"bounds":{"left":0.75243056,"top":0.42277777,"width":0.043055557,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.46736112,"top":0.46388888,"width":0.094444446,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"bounds":{"left":0.6041667,"top":0.46388888,"width":0.196875,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.46736112,"top":0.505,"width":0.08680555,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"bounds":{"left":0.6041667,"top":0.505,"width":0.30173612,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.46736112,"top":0.5461111,"width":0.06527778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"bounds":{"left":0.6041667,"top":0.5461111,"width":0.33958334,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"bounds":{"left":0.46736112,"top":0.5872222,"width":0.11805555,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"bounds":{"left":0.6041667,"top":0.5872222,"width":0.28368056,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.5125,"top":0.42277777,"width":0.027777778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.46736112,"top":0.46388888,"width":0.094444446,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.46736112,"top":0.505,"width":0.08680555,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.46736112,"top":0.5461111,"width":0.06527778,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"bounds":{"left":0.46736112,"top":0.5872222,"width":0.11805555,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"bounds":{"left":0.75243056,"top":0.42277777,"width":0.043055557,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"bounds":{"left":0.6041667,"top":0.46388888,"width":0.196875,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"bounds":{"left":0.6041667,"top":0.505,"width":0.30173612,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"bounds":{"left":0.6041667,"top":0.5461111,"width":0.33958334,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"bounds":{"left":0.6041667,"top":0.5872222,"width":0.28368056,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"📄 License","depth":14,"bounds":{"left":0.4576389,"top":0.64555556,"width":0.54236114,"height":0.04222222},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📄 License","depth":15,"bounds":{"left":0.4576389,"top":0.64555556,"width":0.079166666,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 📄 License","depth":14,"bounds":{"left":0.43819445,"top":0.64611113,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT License - see","depth":15,"bounds":{"left":0.4576389,"top":0.7083333,"width":0.093055554,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE","depth":15,"bounds":{"left":0.55069447,"top":0.7083333,"width":0.044097222,"height":0.02111111},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":16,"bounds":{"left":0.55069447,"top":0.7083333,"width":0.044097222,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file for details.","depth":15,"bounds":{"left":0.59479165,"top":0.7083333,"width":0.074652776,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🤝 Contributing","depth":14,"bounds":{"left":0.4576389,"top":0.7588889,"width":0.54236114,"height":0.042777777},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🤝 Contributing","depth":15,"bounds":{"left":0.4576389,"top":0.7588889,"width":0.11597222,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🤝 Contributing","depth":14,"bounds":{"left":0.43819445,"top":0.7594444,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.","depth":15,"bounds":{"left":0.4576389,"top":0.82222223,"width":0.54236114,"height":0.04777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🙋♀️ Support","depth":14,"bounds":{"left":0.4576389,"top":0.89944446,"width":0.54236114,"height":0.04222222},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🙋♀️ Support","depth":15,"bounds":{"left":0.4576389,"top":0.89944446,"width":0.08194444,"height":0.035},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🙋♀️ Support","depth":14,"bounds":{"left":0.43819445,"top":0.89944446,"width":0.019444445,"height":0.031111112},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"If you encounter any issues:","depth":15,"bounds":{"left":0.4576389,"top":0.9622222,"width":0.140625,"height":0.02111111},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check the","depth":16,"bounds":{"left":0.4798611,"top":1.0,"width":0.054166667,"height":-0.0066666603},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"troubleshooting section","depth":16,"bounds":{"left":0.53402776,"top":1.0,"width":0.119444445,"height":-0.0066666603},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"troubleshooting section","depth":17,"bounds":{"left":0.53402776,"top":1.0,"width":0.119444445,"height":-0.0066666603},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search existing","depth":16,"bounds":{"left":0.4798611,"top":1.0,"width":0.07986111,"height":-0.03777778},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
7820259716360691545
|
-4913630650813487170
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing...
|
72387
|
NULL
|
|
72390
|
1765
|
13
|
2026-04-22T15:42:51.486020+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872571486_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"bounds":{"left":0.47839096,"top":0.070231445,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"bounds":{"left":0.47839096,"top":0.07302474,"width":0.095578454,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"bounds":{"left":0.48138297,"top":0.057861134,"width":0.03274601,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"bounds":{"left":0.49202126,"top":0.06424581,"width":0.019448139,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"bounds":{"left":0.51678854,"top":0.057861134,"width":0.03873005,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"bounds":{"left":0.52792555,"top":0.06424581,"width":0.02443484,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"bounds":{"left":0.75265956,"top":0.059457302,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"bounds":{"left":0.76462764,"top":0.057861134,"width":0.011303191,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.02244016,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.05036569,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.057347074,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.036901597,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"bounds":{"left":0.5493683,"top":0.0,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"bounds":{"left":0.5621675,"top":0.0,"width":0.008643617,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"bounds":{"left":0.5,"top":0.014365523,"width":0.058011968,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"bounds":{"left":0.55801195,"top":0.014365523,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"bounds":{"left":0.4893617,"top":0.046288908,"width":0.10488697,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"bounds":{"left":0.5,"top":0.07821229,"width":0.018118352,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5181183,"top":0.07821229,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"bounds":{"left":0.5227726,"top":0.080207504,"width":0.17154256,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"bounds":{"left":0.5,"top":0.10055866,"width":0.022938829,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.52293885,"top":0.10055866,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"bounds":{"left":0.5277593,"top":0.102553874,"width":0.11702128,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"bounds":{"left":0.49468085,"top":0.14445332,"width":0.005319149,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"bounds":{"left":0.5,"top":0.16001596,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.16001596,"width":0.046210106,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"bounds":{"left":0.50548536,"top":0.17597765,"width":0.021775266,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.17597765,"width":0.040724736,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"bounds":{"left":0.5109708,"top":0.1915403,"width":0.02443484,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5354056,"top":0.1915403,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.54089093,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"bounds":{"left":0.54355055,"top":0.1915403,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.55452126,"top":0.1915403,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"bounds":{"left":0.49468085,"top":0.1915403,"width":0.065159574,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"bounds":{"left":0.5109708,"top":0.207502,"width":0.016289894,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"bounds":{"left":0.52726066,"top":0.207502,"width":0.008144947,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5354056,"top":0.207502,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"bounds":{"left":0.53806514,"top":0.207502,"width":0.13331117,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.67137635,"top":0.207502,"width":0.0028257978,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"bounds":{"left":0.49468085,"top":0.207502,"width":0.18484043,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"bounds":{"left":0.5109708,"top":0.22306465,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.22306465,"width":0.038065158,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"bounds":{"left":0.5162899,"top":0.2386273,"width":0.043550532,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.55984044,"top":0.2386273,"width":0.005485372,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.5653258,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"bounds":{"left":0.56798536,"top":0.2386273,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"bounds":{"left":0.6143617,"top":0.2386273,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"bounds":{"left":0.49468085,"top":0.254589,"width":0.018949468,"height":0.060255386},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.1368715,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"bounds":{"left":0.5,"top":0.34357542,"width":0.059840426,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"bounds":{"left":0.55984044,"top":0.34317636,"width":0.064328454,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"bounds":{"left":0.4893617,"top":0.37988827,"width":0.0696476,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"bounds":{"left":0.4800532,"top":0.38028732,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"bounds":{"left":0.4893617,"top":0.4253791,"width":0.2096077,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"bounds":{"left":0.49468085,"top":0.46927375,"width":0.1549202,"height":0.09177973},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.46169195,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"bounds":{"left":0.4893617,"top":0.5897845,"width":0.21160239,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"bounds":{"left":0.4893617,"top":0.6260974,"width":0.06333112,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"bounds":{"left":0.4800532,"top":0.62649643,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.67597765,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.67677575,"width":0.051861703,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.67478055,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"bounds":{"left":0.4893617,"top":0.71109337,"width":0.094913565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"bounds":{"left":0.50166225,"top":0.745012,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"bounds":{"left":0.5497008,"top":0.7430168,"width":0.06216755,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"bounds":{"left":0.50166225,"top":0.76735836,"width":0.06815159,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"bounds":{"left":0.57147604,"top":0.76536316,"width":0.06798537,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"bounds":{"left":0.50166225,"top":0.7897047,"width":0.035405584,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"bounds":{"left":0.53889626,"top":0.7877095,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"bounds":{"left":0.5422208,"top":0.7897047,"width":0.038065158,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"bounds":{"left":0.58211434,"top":0.7877095,"width":0.044714097,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"bounds":{"left":0.50166225,"top":0.81205106,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"bounds":{"left":0.5362367,"top":0.81005585,"width":0.057845745,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":0.83439744,"width":0.049035903,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"bounds":{"left":0.5525266,"top":0.8324022,"width":0.05668218,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"bounds":{"left":0.50166225,"top":0.8567438,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"bounds":{"left":0.5334109,"top":0.8547486,"width":0.059674203,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"bounds":{"left":0.50166225,"top":0.8790902,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"bounds":{"left":0.517121,"top":0.877095,"width":0.053357713,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.9134078,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.9142059,"width":0.06000665,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.9122107,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4893617,"top":0.9485235,"width":0.079288565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.50166225,"top":0.98244214,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.5334109,"top":0.98044693,"width":0.08427527,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":1.0,"width":0.049035903,"height":-0.004788518},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.5525266,"top":1.0,"width":0.14544548,"height":-0.002793312},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4893617,"top":1.0,"width":0.2785904,"height":-0.03910613},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4893617,"top":1.0,"width":0.057845745,"height":-0.03910613},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.4800532,"top":1.0,"width":0.00930851,"height":-0.03910613},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":1.0,"width":0.0026595744,"height":-0.09616923},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.4973404,"top":1.0,"width":0.0653258,"height":-0.09616923},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test with MCP Inspector","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npx @modelcontextprotocol/inspector dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":1.0,"width":0.00930851,"height":-0.0885874},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🐛 Troubleshooting","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🐛 Troubleshooting","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🐛 Troubleshooting","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issue","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issue","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"📄 License","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📄 License","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 📄 License","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT License - see","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file for details.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🤝 Contributing","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🤝 Contributing","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🤝 Contributing","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🙋♀️ Support","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🙋♀️ Support","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🙋♀️ Support","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"If you encounter any issues:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check the","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"troubleshooting section","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"troubleshooting section","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search existing","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub issues","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub issues","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create a new issue with detailed information about your problem","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Status","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Tested and working with GitHub integration ✓","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-986473481908784031
|
-7219473660027181122
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓...
|
72388
|
NULL
|
|
72391
|
1764
|
9
|
2026-04-22T15:42:56.499680+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872576499_m1.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.028819444,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.051736113,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.075,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.09826389,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.121527776,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"}]...
|
7422469954848675192
|
-3747135675027527746
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit...
|
NULL
|
NULL
|
|
72394
|
1765
|
15
|
2026-04-22T15:43:01.641215+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872581641_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation
Clone and setup
:
git clone https://github.com/sourcegate/mcp-fathom-server.git
cd
mcp-fathom-server
npm install
npm run build
Copy
Configure your API key
:
cp .env.example .env
#
Edit .env and add your Fathom API key
Copy
Get your Fathom API key
:
Log in to
Fathom
Fathom
Go to Settings → API
Generate a new API key
Copy it to your
.env
file
Add to Claude Desktop
:
Edit your Claude Desktop configuration file:
macOS
:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers"
: {
"fathom"...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"bounds":{"left":0.47839096,"top":0.070231445,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"bounds":{"left":0.47839096,"top":0.07302474,"width":0.095578454,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"bounds":{"left":0.48138297,"top":0.057861134,"width":0.03274601,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"bounds":{"left":0.49202126,"top":0.06424581,"width":0.019448139,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"bounds":{"left":0.51678854,"top":0.057861134,"width":0.03873005,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"bounds":{"left":0.52792555,"top":0.06424581,"width":0.02443484,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"bounds":{"left":0.75265956,"top":0.059457302,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"bounds":{"left":0.76462764,"top":0.057861134,"width":0.011303191,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.02244016,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"bounds":{"left":0.53307843,"top":0.0,"width":0.017952127,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.05036569,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.057347074,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"bounds":{"left":0.5106383,"top":0.0,"width":0.036901597,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"bounds":{"left":0.5493683,"top":0.0,"width":0.010970744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"bounds":{"left":0.5621675,"top":0.0,"width":0.008643617,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"bounds":{"left":0.5,"top":0.014365523,"width":0.058011968,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"bounds":{"left":0.55801195,"top":0.014365523,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"bounds":{"left":0.4893617,"top":0.046288908,"width":0.10488697,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"bounds":{"left":0.5,"top":0.07821229,"width":0.018118352,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.5181183,"top":0.07821229,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"bounds":{"left":0.5227726,"top":0.080207504,"width":0.17154256,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"bounds":{"left":0.5,"top":0.10055866,"width":0.022938829,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"bounds":{"left":0.52293885,"top":0.10055866,"width":0.0029920214,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"bounds":{"left":0.5277593,"top":0.102553874,"width":0.11702128,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"bounds":{"left":0.49468085,"top":0.14445332,"width":0.005319149,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"bounds":{"left":0.5,"top":0.16001596,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"bounds":{"left":0.49468085,"top":0.16001596,"width":0.046210106,"height":0.029130088},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"bounds":{"left":0.50548536,"top":0.17597765,"width":0.021775266,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
4997571053754658138
|
-292902240035125570
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
8 months ago
8 months ago
8 months ago
8 months ago
4 months ago
8 months ago
8 months ago
8 months ago
8 months ago
Repository files navigation
Repository files navigation
README
README
MIT license
MIT license
Edit file
Outline
MCP Fathom Server
MCP Fathom Server
Permalink: MCP Fathom Server
An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.
MCP
Node.js
TypeScript
🎯 Features
🎯 Features
Permalink: 🎯 Features
🔍 Smart Search
: Natural language search across meeting titles, summaries, transcripts, and action items
📋 List Meetings
: Retrieve meetings with various filters (attendees, date ranges, teams, etc.)
📝 Transcript Support
: Optionally include full meeting transcripts in search results
⚡ Real-time
: Direct integration with Fathom's API for up-to-date meeting data
🛡️ Secure
: API key management through environment variables
🚀 Quick Start
🚀 Quick Start
Permalink: 🚀 Quick Start
Prerequisites
Prerequisites
Permalink: Prerequisites
Node.js 18 or higher
npm or yarn
A Fathom AI account with API access
Claude Desktop app
Installation
Installation
Permalink: Installation
Clone and setup
:
git clone https://github.com/sourcegate/mcp-fathom-server.git
cd
mcp-fathom-server
npm install
npm run build
Copy
Configure your API key
:
cp .env.example .env
#
Edit .env and add your Fathom API key
Copy
Get your Fathom API key
:
Log in to
Fathom
Fathom
Go to Settings → API
Generate a new API key
Copy it to your
.env
file
Add to Claude Desktop
:
Edit your Claude Desktop configuration file:
macOS
:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows
:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers"
: {
"fathom"...
|
72392
|
NULL
|
|
72421
|
1767
|
2
|
2026-04-22T15:45:12.251742+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872712251_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-166803478060750653
|
-3760505839634729025
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server...
|
72418
|
NULL
|
|
72426
|
1767
|
5
|
2026-04-22T15:45:28.613093+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872728613_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-3354626721601607693
|
-3756002136793909314
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago...
|
NULL
|
NULL
|
|
72427
|
1766
|
3
|
2026-04-22T15:45:30.025545+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872730025_m1.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.028819444,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.051736113,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.075,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.09826389,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.121527776,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
1436659095523296219
|
-3751666762579810370
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {"status":"error","message":"You have reached your secondly limit.","errorType":"RATE_LIMIT
[JY-20372] AI Reports > Empty page design and promotion - Jira
[JY-20372] AI Reports > Empty page design and promotion - Jira
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
Jiminny
Jiminny
Workers | Datadog
Workers | Datadog
Pull requests · jiminny/app
Pull requests · jiminny/app
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Jiminny
Jiminny
CloudWatch | us-east-2
CloudWatch | us-east-2
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Your 'Not enpough activities' report wasn't generated - [EMAIL] - Jiminny Mail
Jiminny MCP Connector - Product - Confluence
Jiminny MCP Connector - Product - Confluence
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
Close tab
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app
Architecture overview - Model Context Protocol
Architecture overview - Model Context Protocol
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to content
Skip to content
Open menu
Homepage (g then d)
sourcegate
sourcegate
mcp-fathom-server
mcp-fathom-server
Search or jump to…
Type
/
to search
Chat with Copilot
Open Copilot…
Create new...
Issues
Pull requests
Repositories
You have unread notifications(g then n)
Open user navigation menu
Repository navigation
Repository navigation
Code
Code
Issues
Issues
Pull requests (2)
Pull requests
(
2
)
Agents
Agents
Actions
Actions
Projects
Projects
Security and quality
Security and quality
Insights
Insights
Important update
Important update
On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.
Review this update
Review this update
and manage your preferences in your
GitHub account settings
GitHub account settings
.
Dismiss banner
mcp-fathom-server
mcp-fathom-server
Public
Watch: Participating in sourcegate/mcp-fathom-server
Watch
(
0
)
Fork 4
Fork
4
See your forks of this repository
Star this repository (8)
Star
8
Add this repository to a list
sourcegate/mcp-fathom-server
sourcegate/mcp-fathom-server
main branch
main
1 Branch
1
Branch
0 Tags
0
Tags
Go to file
Add file
Add file
Add file
Add file
Code
Code
Folders and files
Folders and files
Name
Last commit message
Last commit date
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
8 months ago
.env.example, (File)
.env.example
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
.gitignore, (File)
.gitignore
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
8 months ago
LICENSE, (File)
LICENSE
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
README.md, (File)
README.md
Update README with GitHub integration status
Update README with GitHub integration status
4 months ago
claude-config-example.json, (File)
claude-config-example.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package-lock.json, (File)
package-lock.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
package.json, (File)
package.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
tsconfig.json, (File)
tsconfig.json
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
8 months ago
Name
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
src, (Directory)
src
.env.example, (File)
.env.example
.gitignore, (File)
.gitignore
LICENSE, (File)
LICENSE
README.md, (File)
README.md
claude-config-example.json, (File)
claude-config-example.json
package-lock.json, (File)
package-lock.json
package.json, (File)
package.json
tsconfig.json, (File)
tsconfig.json
Last commit message
Latest commit
Latest commit
commits by sourcegate
sourcegate
and
commits by claude
claude
Update README with GitHub integration status
Update README with GitHub integration status
Open commit details
Commit f36377c
f36377c
·
4 months ago
History
History
6 Commits
6 Commits
Fix Claude integration: Add stub handlers for resources and prompts
Fix Claude integration: Add stub handlers for resources and prompts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Performance optimization: Fix search timeouts
Performance optimization: Fix search timeouts
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Update README with GitHub integration status
Update README with GitHub integration status
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server
Initial release of MCP Fathom Server...
|
NULL
|
NULL
|
|
72428
|
1767
|
6
|
2026-04-22T15:45:31.712470+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872731712_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓
Built for fun by
@petesena
@petesena
❤️
About
About
No description, website, or topics provided.
Resources
Resources
Readme
Readme
License
License
MIT license
MIT license
Activity
Activity
Stars
Stars
8 stars
8
stars
Watchers
Watchers
0 watching
0
watching
Forks
Forks
4 forks
4
forks
Report repository
Report repository
Releases
Releases
Releases
No releases published
Packages
Packages
Packages
No packages published
Contributors 2
Contributors 2
Contributors
2
@sourcegate
sourcegate
sourcegate
@claude
claude Claude
claude
Claude
Languages
Languages
JavaScript 57.8%
JavaScript
57.8%
TypeScript 42.2%
TypeScript
42.2%
Footer
Footer
GitHub Homepage
© 2026 GitHub, Inc....
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"bounds":{"left":0.47839096,"top":0.0,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"bounds":{"left":0.47839096,"top":0.0,"width":0.095578454,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"bounds":{"left":0.49202126,"top":0.0,"width":0.019448139,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"bounds":{"left":0.52792555,"top":0.0,"width":0.02443484,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"bounds":{"left":0.75265956,"top":0.0,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"bounds":{"left":0.5,"top":0.0,"width":0.059840426,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"bounds":{"left":0.55984044,"top":0.0,"width":0.064328454,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"bounds":{"left":0.4893617,"top":0.006384677,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"bounds":{"left":0.4893617,"top":0.006384677,"width":0.0696476,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"bounds":{"left":0.4800532,"top":0.006783719,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"bounds":{"left":0.4893617,"top":0.0518755,"width":0.2096077,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"bounds":{"left":0.49468085,"top":0.09577015,"width":0.1549202,"height":0.09177973},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.08818835,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"bounds":{"left":0.4893617,"top":0.21628092,"width":0.21160239,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"bounds":{"left":0.4893617,"top":0.2525938,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"bounds":{"left":0.4893617,"top":0.2525938,"width":0.06333112,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"bounds":{"left":0.4800532,"top":0.2529928,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.30247405,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.30327216,"width":0.051861703,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.30127692,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"bounds":{"left":0.4893617,"top":0.33758977,"width":0.094913565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"bounds":{"left":0.50166225,"top":0.3715084,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"bounds":{"left":0.5497008,"top":0.36951315,"width":0.06216755,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"bounds":{"left":0.50166225,"top":0.39385474,"width":0.06815159,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"bounds":{"left":0.57147604,"top":0.39185953,"width":0.06798537,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"bounds":{"left":0.50166225,"top":0.4162011,"width":0.035405584,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"bounds":{"left":0.53889626,"top":0.4142059,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"bounds":{"left":0.5422208,"top":0.4162011,"width":0.038065158,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"bounds":{"left":0.58211434,"top":0.4142059,"width":0.044714097,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"bounds":{"left":0.50166225,"top":0.4385475,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"bounds":{"left":0.5362367,"top":0.4365523,"width":0.057845745,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":0.46089387,"width":0.049035903,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"bounds":{"left":0.5525266,"top":0.45889863,"width":0.05668218,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"bounds":{"left":0.50166225,"top":0.48324022,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"bounds":{"left":0.5334109,"top":0.481245,"width":0.059674203,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"bounds":{"left":0.50166225,"top":0.50558656,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"bounds":{"left":0.517121,"top":0.50359136,"width":0.053357713,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.53990424,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.54070234,"width":0.06000665,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.5387071,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4893617,"top":0.57501996,"width":0.079288565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.50166225,"top":0.6089386,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.5334109,"top":0.6069433,"width":0.08427527,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":0.6312849,"width":0.049035903,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.5525266,"top":0.6292897,"width":0.14544548,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4893617,"top":0.66560256,"width":0.2785904,"height":0.030327214},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4893617,"top":0.66560256,"width":0.057845745,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.4800532,"top":0.66560256,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":0.7226656,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.4973404,"top":0.7226656,"width":0.0653258,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"bounds":{"left":0.49468085,"top":0.7386273,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":0.7701516,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"bounds":{"left":0.4973404,"top":0.7701516,"width":0.05718085,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"bounds":{"left":0.49468085,"top":0.78571427,"width":0.03523936,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":0.8172386,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test with MCP Inspector","depth":16,"bounds":{"left":0.4973404,"top":0.8172386,"width":0.0653258,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npx @modelcontextprotocol/inspector dist/index.js","depth":16,"bounds":{"left":0.49468085,"top":0.8328013,"width":0.13314494,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.7150838,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🐛 Troubleshooting","depth":14,"bounds":{"left":0.4893617,"top":0.87948924,"width":0.2785904,"height":0.030327214},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🐛 Troubleshooting","depth":15,"bounds":{"left":0.4893617,"top":0.87948924,"width":0.06881649,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🐛 Troubleshooting","depth":14,"bounds":{"left":0.4800532,"top":0.87948924,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.515625,"top":0.9301676,"width":0.013297873,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"bounds":{"left":0.63048536,"top":0.9301676,"width":0.020611702,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.49401596,"top":0.9596967,"width":0.045212764,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"bounds":{"left":0.55950797,"top":0.9596967,"width":0.09424867,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.49401596,"top":0.98922586,"width":0.04155585,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"bounds":{"left":0.55950797,"top":0.98922586,"width":0.14444813,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.03125,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.16256648,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.05651596,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.13580452,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.515625,"top":0.9301676,"width":0.013297873,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.49401596,"top":0.9596967,"width":0.045212764,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.49401596,"top":0.98922586,"width":0.04155585,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.03125,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.05651596,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"bounds":{"left":0.63048536,"top":0.9301676,"width":0.020611702,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"bounds":{"left":0.55950797,"top":0.9596967,"width":0.09424867,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"bounds":{"left":0.55950797,"top":0.98922586,"width":0.14444813,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.16256648,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.13580452,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"📄 License","depth":14,"bounds":{"left":0.4893617,"top":1.0,"width":0.2785904,"height":-0.090183616},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📄 License","depth":15,"bounds":{"left":0.4893617,"top":1.0,"width":0.037898935,"height":-0.090183616},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 📄 License","depth":14,"bounds":{"left":0.4800532,"top":1.0,"width":0.00930851,"height":-0.09058261},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT License - see","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file for details.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🤝 Contributing","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🤝 Contributing","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🤝 Contributing","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🙋♀️ Support","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🙋♀️ Support","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🙋♀️ Support","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"If you encounter any issues:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check the","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"troubleshooting section","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"troubleshooting section","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search existing","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub issues","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub issues","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create a new issue with detailed information about your problem","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Status","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Tested and working with GitHub integration ✓","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Built for fun by","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@petesena","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@petesena","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"❤️","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"About","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"About","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No description, website, or topics provided.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Resources","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resources","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Readme","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Readme","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"License","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"License","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Activity","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Activity","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Stars","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stars","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"8 stars","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"8","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"stars","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Watchers","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Watchers","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 watching","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"watching","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Forks","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Forks","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"4 forks","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"4","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"forks","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Report repository","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Report repository","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Releases","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Releases","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Releases","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No releases published","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Packages","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Packages","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Packages","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No packages published","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Contributors 2","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Contributors 2","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributors","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@sourcegate","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"claude Claude","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Languages","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Languages","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JavaScript 57.8%","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JavaScript","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"57.8%","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"TypeScript 42.2%","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeScript","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"42.2%","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Footer","depth":7,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Footer","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub Homepage","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"© 2026 GitHub, Inc.","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
3279246990402948991
|
-4913595457851463746
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓
Built for fun by
@petesena
@petesena
❤️
About
About
No description, website, or topics provided.
Resources
Resources
Readme
Readme
License
License
MIT license
MIT license
Activity
Activity
Stars
Stars
8 stars
8
stars
Watchers
Watchers
0 watching
0
watching
Forks
Forks
4 forks
4
forks
Report repository
Report repository
Releases
Releases
Releases
No releases published
Packages
Packages
Packages
No packages published
Contributors 2
Contributors 2
Contributors
2
@sourcegate
sourcegate
sourcegate
@claude
claude Claude
claude
Claude
Languages
Languages
JavaScript 57.8%
JavaScript
57.8%
TypeScript 42.2%
TypeScript
42.2%
Footer
Footer
GitHub Homepage
© 2026 GitHub, Inc....
|
NULL
|
NULL
|
|
72429
|
1767
|
7
|
2026-04-22T15:45:49.120149+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776872749120_m2.jpg...
|
Firefox
|
sourcegate/mcp-fathom-server — Work
|
1
|
github.com/sourcegate/mcp-fathom-server
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓
Built for fun by
@petesena
@petesena
❤️
About
About
No description, website, or topics provided.
Resources
Resources
Readme
Readme
License
License
MIT license
MIT license
Activity
Activity
Stars
Stars
8 stars
8
stars
Watchers
Watchers
0 watching
0
watching
Forks
Forks
4 forks
4
forks
Report repository
Report repository
Releases
Releases
Releases
No releases published
Packages
Packages
Packages
No packages published
Contributors 2
Contributors 2
Contributors
2
@sourcegate
sourcegate
sourcegate
@claude
claude Claude
claude
Claude
Languages
Languages
JavaScript 57.8%
JavaScript
57.8%
TypeScript 42.2%
TypeScript
42.2%
Footer
Footer
GitHub Homepage
© 2026 GitHub, Inc.
Footer navigation
Footer navigation
Terms
Terms
Privacy
Privacy...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.28307846,"top":0.0518755,"width":0.07596409,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":4,"bounds":{"left":0.28125,"top":0.09497207,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"SevenShores\\Hubspot\\Exceptions\\BadRequest: Client error: `POST https://api.hubapi.com/crm/v3/objects/contact/search` resulted in a `429 Too Many Requests` response: {\"status\":\"error\",\"message\":\"You have reached your secondly limit.\",\"errorType\":\"RATE_LIMIT","depth":5,"bounds":{"left":0.2945479,"top":0.10614525,"width":0.4644282,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":4,"bounds":{"left":0.28125,"top":0.12769353,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20372] AI Reports > Empty page design and promotion - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.13886672,"width":0.11319814,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.16041501,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.17158818,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.19313647,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.20430966,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Workers | Datadog","depth":4,"bounds":{"left":0.28125,"top":0.22585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Workers | Datadog","depth":5,"bounds":{"left":0.2945479,"top":0.23703113,"width":0.032081116,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pull requests · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.2585794,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.2697526,"width":0.04537899,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":4,"bounds":{"left":0.28125,"top":0.29130086,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20728] [HubSpot] Find the root cause of 429 hit and tweak API client rate limiter - Jira","depth":5,"bounds":{"left":0.2945479,"top":0.30247405,"width":0.15791224,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.32402235,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.33519554,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny","depth":4,"bounds":{"left":0.28125,"top":0.3567438,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny","depth":5,"bounds":{"left":0.2945479,"top":0.367917,"width":0.013131649,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"CloudWatch | us-east-2","depth":4,"bounds":{"left":0.28125,"top":0.38946527,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"CloudWatch | us-east-2","depth":5,"bounds":{"left":0.2945479,"top":0.40063846,"width":0.041223403,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":4,"bounds":{"left":0.28125,"top":0.42218676,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Your 'Not enpough activities' report wasn't generated - lukas.kovalik@jiminny.com - Jiminny Mail","depth":5,"bounds":{"left":0.2945479,"top":0.43335995,"width":0.16821809,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Jiminny MCP Connector - Product - Confluence","depth":4,"bounds":{"left":0.28125,"top":0.45490822,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Jiminny MCP Connector - Product - Confluence","depth":5,"bounds":{"left":0.2945479,"top":0.4660814,"width":0.08294548,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"sourcegate/mcp-fathom-server","depth":4,"bounds":{"left":0.28125,"top":0.48762968,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":5,"bounds":{"left":0.2945479,"top":0.49880287,"width":0.0546875,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.34857047,"top":0.49481246,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXRadioButton","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.5203512,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | change nudges schema by nikolaybiaivanov · Pull Request #11983 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.53152436,"width":0.15475398,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":4,"bounds":{"left":0.28125,"top":0.55307263,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-9712 | Nuges to expire after one year by nikolaybiaivanov · Pull Request #11981 · jiminny/app","depth":5,"bounds":{"left":0.2945479,"top":0.5642458,"width":0.16555852,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Architecture overview - Model Context Protocol","depth":4,"bounds":{"left":0.28125,"top":0.5857941,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Architecture overview - Model Context Protocol","depth":5,"bounds":{"left":0.2945479,"top":0.5969673,"width":0.08277926,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.61851555,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP - AI tooling for Laravel, by the Laravel team | Laravel - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.62968874,"width":0.18583776,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":4,"bounds":{"left":0.28125,"top":0.651237,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Laravel MCP | Laravel 13.x - The clean stack for Artisans and agents","depth":5,"bounds":{"left":0.2945479,"top":0.6624102,"width":0.1178524,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.2840758,"top":0.6855547,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.2840758,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.29504654,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.30618352,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.31732047,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.32845744,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to content","depth":6,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to content","depth":7,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Open menu","depth":10,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Homepage (g then d)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"mcp-fathom-server","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Search or jump to…","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Type","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"to search","depth":12,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Chat with Copilot","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Open Copilot…","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Create new...","depth":9,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Issues","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Pull requests","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Repositories","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"You have unread notifications(g then n)","depth":9,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Open user navigation menu","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Repository navigation","depth":9,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository navigation","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Code","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Issues","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issues","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Pull requests (2)","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pull requests","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Agents","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Agents","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Actions","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Actions","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Projects","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Projects","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Security and quality","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Security and quality","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Insights","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Insights","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Important update","depth":10,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Important update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"On April 24 we'll start using GitHub Copilot interaction data for AI model training unless you opt out.","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Review this update","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Review this update","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and manage your preferences in your","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub account settings","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub account settings","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Dismiss banner","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"mcp-fathom-server","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"mcp-fathom-server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Public","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Watch: Participating in sourcegate/mcp-fathom-server","depth":19,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Watch","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"(","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"0","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":")","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fork 4","depth":17,"role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fork","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"See your forks of this repository","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Star this repository (8)","depth":18,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Star","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Add this repository to a list","depth":19,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"sourcegate/mcp-fathom-server","depth":13,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"sourcegate/mcp-fathom-server","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"main branch","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"main","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"1 Branch","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"1","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Branch","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 Tags","depth":12,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Tags","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXComboBox","text":"Go to file","depth":13,"role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"Add file","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add file","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Add file","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Add file","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXMenuButton","text":"Code","depth":12,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Code","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Folders and files","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Folders and files","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Name","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"src, (Directory)","depth":18,"help_text":"src","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"src","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".env.example, (File)","depth":18,"help_text":".env.example","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".env.example","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":".gitignore, (File)","depth":18,"help_text":".gitignore","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":".gitignore","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE, (File)","depth":18,"help_text":"LICENSE","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README.md, (File)","depth":18,"help_text":"README.md","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README.md","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"claude-config-example.json, (File)","depth":18,"help_text":"claude-config-example.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude-config-example.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package-lock.json, (File)","depth":18,"help_text":"package-lock.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package-lock.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"package.json, (File)","depth":18,"help_text":"package.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"package.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"tsconfig.json, (File)","depth":18,"help_text":"tsconfig.json","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"tsconfig.json","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit message","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":16,"help_text":"Fix Claude integration: Add stub handlers for resources and prompts - Added ListResourcesRequestSchema and ListPromptsRequestSchema handlers - Return empty arrays to prevent 'Method not found' errors - Updated server capabilities to include resources and prompts - Fixes Claude treating server as broken due to optional endpoint errors","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fix Claude integration: Add stub handlers for resources and prompts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Performance optimization: Fix search timeouts","depth":16,"help_text":"Performance optimization: Fix search timeouts - Limited search to last 30 days instead of all meetings - Disabled transcript search by default (was causing 1.6MB+ responses) - Added logging for better debugging visibility - Updated tool descriptions to clarify limitations - Removed dangerous pagination loop that fetched all meetings Fixes timeout issues when searching for meetings with transcripts","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Performance optimization: Fix search timeouts","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"Update README with GitHub integration status Add testing status note to confirm GitHub app integration is working correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Initial release of MCP Fathom Server","depth":16,"help_text":"Initial release of MCP Fathom Server 🚀 Features: - Natural language search across Fathom meeting data - List meetings with comprehensive filtering options - Search within titles, summaries, transcripts, and action items - Secure API key management via environment variables - Full TypeScript implementation with proper error handling 🛠️ Technical: - Built with MCP SDK v1.17+ - Axios for reliable HTTP requests - Zod schema validation for type safety - Comprehensive documentation and examples 🔧 Ready for production use with Claude Desktop integration","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Initial release of MCP Fathom Server","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Last commit date","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Latest commit","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Latest commit","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by sourcegate","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"commits by claude","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Update README with GitHub integration status","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Update README with GitHub integration status","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXCheckBox","text":"Open commit details","depth":15,"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"Commit f36377c","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"f36377c","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"·","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"History","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"History","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"6 Commits","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"6 Commits","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"4 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"8 months ago","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Repository files navigation","depth":13,"bounds":{"left":0.47839096,"top":0.070231445,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Repository files navigation","depth":14,"bounds":{"left":0.47839096,"top":0.07302474,"width":0.095578454,"height":0.023144454},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"README","depth":16,"bounds":{"left":0.48138297,"top":0.057861134,"width":0.03274601,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"README","depth":18,"bounds":{"left":0.49202126,"top":0.06424581,"width":0.019448139,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"bounds":{"left":0.51678854,"top":0.057861134,"width":0.03873005,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":18,"bounds":{"left":0.52792555,"top":0.06424581,"width":0.02443484,"height":0.013567438},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Edit file","depth":13,"bounds":{"left":0.75265956,"top":0.059457302,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXMenuButton","text":"Outline","depth":13,"bounds":{"left":0.76462764,"top":0.057861134,"width":0.011303191,"height":0.025538707},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXHeading","text":"MCP Fathom Server","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"MCP Fathom Server","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: MCP Fathom Server","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"An MCP (Model Context Protocol) server that integrates with Fathom AI's meeting API, enabling Claude to search and retrieve meeting information through natural language queries.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MCP","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Node.js","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"TypeScript","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🎯 Features","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🎯 Features","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🎯 Features","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"🔍 Smart Search","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Natural language search across meeting titles, summaries, transcripts, and action items","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📋 List Meetings","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Retrieve meetings with various filters (attendees, date ranges, teams, etc.)","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📝 Transcript Support","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Optionally include full meeting transcripts in search results","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"⚡ Real-time","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Direct integration with Fathom's API for up-to-date meeting data","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛡️ Secure","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": API key management through environment variables","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🚀 Quick Start","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🚀 Quick Start","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🚀 Quick Start","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Prerequisites","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Prerequisites","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Prerequisites","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Node.js 18 or higher","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm or yarn","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"A Fathom AI account with API access","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude Desktop app","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Installation","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Installation","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: Installation","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Clone and setup","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"git clone https://github.com/sourcegate/mcp-fathom-server.git","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cd","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"mcp-fathom-server\nnpm install\nnpm run build","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Configure your API key","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"cp .env.example .env","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit .env and add your Fathom API key","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Get your Fathom API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Log in to","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fathom","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fathom","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Go to Settings → API","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Generate a new API key","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Copy it to your","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".env","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Add to Claude Desktop","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Edit your Claude Desktop configuration file:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"macOS","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"~/Library/Application Support/Claude/claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Windows","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"%APPDATA%\\Claude\\claude_desktop_config.json","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"{","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"mcpServers\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"fathom\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"command\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"node","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":",","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"args\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": [","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/absolute/path/to/mcp-fathom-server/dist/index.js","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"],","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"env\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": {","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"FATHOM_API_KEY\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":":","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"your-api-key-here","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"}\n }\n }\n}","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Restart Claude Desktop","depth":17,"bounds":{"left":0.5,"top":0.0,"width":0.059840426,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"and you're ready to go! 🎉","depth":16,"bounds":{"left":0.55984044,"top":0.0,"width":0.064328454,"height":0.016759777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"💬 Usage Examples","depth":14,"bounds":{"left":0.4893617,"top":0.006384677,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"💬 Usage Examples","depth":15,"bounds":{"left":0.4893617,"top":0.006384677,"width":0.0696476,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 💬 Usage Examples","depth":14,"bounds":{"left":0.4800532,"top":0.006783719,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Once configured, you can ask Claude natural language questions about your meetings:","depth":15,"bounds":{"left":0.4893617,"top":0.0518755,"width":0.2096077,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"\"Find me meetings about recruiting\"\n\"Show me all external meetings from last week\" \n\"Search for meetings where we discussed product launches\"\n\"List meetings with john@example.com\"\n\"Find meetings with action items about hiring\"\n\"What did we discuss in our Q1 planning meetings?\"","depth":17,"bounds":{"left":0.49468085,"top":0.09577015,"width":0.1549202,"height":0.09177973},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.08818835,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Claude will automatically choose the right tool and search method based on your query.","depth":15,"bounds":{"left":0.4893617,"top":0.21628092,"width":0.21160239,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🔧 Available Tools","depth":14,"bounds":{"left":0.4893617,"top":0.2525938,"width":0.2785904,"height":0.030726258},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🔧 Available Tools","depth":15,"bounds":{"left":0.4893617,"top":0.2525938,"width":0.06333112,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🔧 Available Tools","depth":14,"bounds":{"left":0.4800532,"top":0.2529928,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"list_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.30247405,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"list_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.30327216,"width":0.051861703,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: list_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.30127692,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Retrieves meetings with optional filters:","depth":15,"bounds":{"left":0.4893617,"top":0.33758977,"width":0.094913565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees","depth":17,"bounds":{"left":0.50166225,"top":0.3715084,"width":0.04637633,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by attendee emails","depth":16,"bounds":{"left":0.5497008,"top":0.36951315,"width":0.06216755,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"calendar_invitees_domains","depth":17,"bounds":{"left":0.50166225,"top":0.39385474,"width":0.06815159,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by company domains","depth":16,"bounds":{"left":0.57147604,"top":0.39185953,"width":0.06798537,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_after","depth":17,"bounds":{"left":0.50166225,"top":0.4162011,"width":0.035405584,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"/","depth":16,"bounds":{"left":0.53889626,"top":0.4142059,"width":0.0014960107,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"created_before","depth":17,"bounds":{"left":0.5422208,"top":0.4162011,"width":0.038065158,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Date range filters","depth":16,"bounds":{"left":0.58211434,"top":0.4142059,"width":0.044714097,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"meeting_type","depth":17,"bounds":{"left":0.50166225,"top":0.4385475,"width":0.03274601,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": all, internal, or external","depth":16,"bounds":{"left":0.5362367,"top":0.4365523,"width":0.057845745,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":0.46089387,"width":0.049035903,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Include full transcripts","depth":16,"bounds":{"left":0.5525266,"top":0.45889863,"width":0.05668218,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"recorded_by","depth":17,"bounds":{"left":0.50166225,"top":0.48324022,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by meeting owner","depth":16,"bounds":{"left":0.5334109,"top":0.481245,"width":0.059674203,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"teams","depth":17,"bounds":{"left":0.50166225,"top":0.50558656,"width":0.013630319,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Filter by team names","depth":16,"bounds":{"left":0.517121,"top":0.50359136,"width":0.053357713,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"search_meetings","depth":14,"bounds":{"left":0.4893617,"top":0.53990424,"width":0.2785904,"height":0.020351157},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_meetings","depth":16,"bounds":{"left":0.49069148,"top":0.54070234,"width":0.06000665,"height":0.01915403},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: search_meetings","depth":14,"bounds":{"left":0.4800532,"top":0.5387071,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Searches meetings by keywords:","depth":15,"bounds":{"left":0.4893617,"top":0.57501996,"width":0.079288565,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"search_term","depth":17,"bounds":{"left":0.50166225,"top":0.6089386,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": The keyword/phrase to search for","depth":16,"bounds":{"left":0.5334109,"top":0.6069433,"width":0.08427527,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"include_transcript","depth":17,"bounds":{"left":0.50166225,"top":0.6312849,"width":0.049035903,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Search within transcripts (slower but more comprehensive)","depth":16,"bounds":{"left":0.5525266,"top":0.6292897,"width":0.14544548,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🛠️ Development","depth":14,"bounds":{"left":0.4893617,"top":0.66560256,"width":0.2785904,"height":0.030327214},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🛠️ Development","depth":15,"bounds":{"left":0.4893617,"top":0.66560256,"width":0.057845745,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🛠️ Development","depth":14,"bounds":{"left":0.4800532,"top":0.66560256,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":0.7226656,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Run in development mode","depth":16,"bounds":{"left":0.4973404,"top":0.7226656,"width":0.0653258,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run dev","depth":16,"bounds":{"left":0.49468085,"top":0.7386273,"width":0.029920213,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":0.7701516,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Build for production","depth":16,"bounds":{"left":0.4973404,"top":0.7701516,"width":0.05718085,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npm run build","depth":16,"bounds":{"left":0.49468085,"top":0.78571427,"width":0.03523936,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"#","depth":16,"bounds":{"left":0.49468085,"top":0.8172386,"width":0.0026595744,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Test with MCP Inspector","depth":16,"bounds":{"left":0.4973404,"top":0.8172386,"width":0.0653258,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"npx @modelcontextprotocol/inspector dist/index.js","depth":16,"bounds":{"left":0.49468085,"top":0.8328013,"width":0.13314494,"height":0.0131683955},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Copy","depth":15,"bounds":{"left":0.75598407,"top":0.7150838,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"🐛 Troubleshooting","depth":14,"bounds":{"left":0.4893617,"top":0.87948924,"width":0.2785904,"height":0.030327214},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🐛 Troubleshooting","depth":15,"bounds":{"left":0.4893617,"top":0.87948924,"width":0.06881649,"height":0.025139665},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🐛 Troubleshooting","depth":14,"bounds":{"left":0.4800532,"top":0.87948924,"width":0.00930851,"height":0.022346368},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.515625,"top":0.9301676,"width":0.013297873,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"bounds":{"left":0.63048536,"top":0.9301676,"width":0.020611702,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.49401596,"top":0.9596967,"width":0.045212764,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"bounds":{"left":0.55950797,"top":0.9596967,"width":0.09424867,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.49401596,"top":0.98922586,"width":0.04155585,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"bounds":{"left":0.55950797,"top":0.98922586,"width":0.14444813,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.03125,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.16256648,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.05651596,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.13580452,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Issue","depth":18,"bounds":{"left":0.515625,"top":0.9301676,"width":0.013297873,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Server won't start","depth":19,"bounds":{"left":0.49401596,"top":0.9596967,"width":0.045212764,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No results found","depth":19,"bounds":{"left":0.49401596,"top":0.98922586,"width":0.04155585,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Rate limiting","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.03125,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude can't find tools","depth":19,"bounds":{"left":0.49401596,"top":1.0,"width":0.05651596,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Solution","depth":18,"bounds":{"left":0.63048536,"top":0.9301676,"width":0.020611702,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check that your API key is correctly set","depth":18,"bounds":{"left":0.55950797,"top":0.9596967,"width":0.09424867,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Try broader search terms or check your API key permissions","depth":18,"bounds":{"left":0.55950797,"top":0.98922586,"width":0.14444813,"height":0.010774136},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"The server handles this automatically - wait a moment and try again","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.16256648,"height":-0.01875496},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ensure Claude Desktop is restarted after config changes","depth":18,"bounds":{"left":0.55950797,"top":1.0,"width":0.13580452,"height":-0.048284173},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"📄 License","depth":14,"bounds":{"left":0.4893617,"top":1.0,"width":0.2785904,"height":-0.090183616},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"📄 License","depth":15,"bounds":{"left":0.4893617,"top":1.0,"width":0.037898935,"height":-0.090183616},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 📄 License","depth":14,"bounds":{"left":0.4800532,"top":1.0,"width":0.00930851,"height":-0.09058261},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT License - see","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"LICENSE","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"LICENSE","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"file for details.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🤝 Contributing","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🤝 Contributing","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🤝 Contributing","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"🙋♀️ Support","depth":14,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"🙋♀️ Support","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Permalink: 🙋♀️ Support","depth":14,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"If you encounter any issues:","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Check the","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"troubleshooting section","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"troubleshooting section","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search existing","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub issues","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"GitHub issues","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Create a new issue with detailed information about your problem","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Status","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":": Tested and working with GitHub integration ✓","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Built for fun by","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@petesena","depth":15,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"@petesena","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"❤️","depth":15,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"About","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"About","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No description, website, or topics provided.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Resources","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Resources","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Readme","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Readme","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"License","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"License","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"MIT license","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"MIT license","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Activity","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Activity","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Stars","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Stars","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"8 stars","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"8","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"stars","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Watchers","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Watchers","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"0 watching","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"0","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"watching","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Forks","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Forks","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"4 forks","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"4","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"forks","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Report repository","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Report repository","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Releases","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Releases","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Releases","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No releases published","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Packages","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Packages","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Packages","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"No packages published","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Contributors 2","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Contributors 2","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Contributors","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"2","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@sourcegate","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"sourcegate","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"sourcegate","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"@claude","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"claude Claude","depth":18,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"claude","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Claude","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Languages","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Languages","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"JavaScript 57.8%","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JavaScript","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"57.8%","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"TypeScript 42.2%","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"TypeScript","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"42.2%","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Footer","depth":7,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Footer","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"GitHub Homepage","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"© 2026 GitHub, Inc.","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Footer navigation","depth":8,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Footer navigation","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Terms","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Terms","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Privacy","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Privacy","depth":11,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
1121357378636570177
|
-4913595457851463746
|
visual_change
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
SevenShores\Hubspot\Exceptions\BadRequest: Client error: `POST [URL_WITH_CREDENTIALS] dist/index.js
Copy
🐛 Troubleshooting
🐛 Troubleshooting
Permalink: 🐛 Troubleshooting
Issue
Solution
Server won't start
Check that your API key is correctly set
No results found
Try broader search terms or check your API key permissions
Rate limiting
The server handles this automatically - wait a moment and try again
Claude can't find tools
Ensure Claude Desktop is restarted after config changes
Issue
Server won't start
No results found
Rate limiting
Claude can't find tools
Solution
Check that your API key is correctly set
Try broader search terms or check your API key permissions
The server handles this automatically - wait a moment and try again
Ensure Claude Desktop is restarted after config changes
📄 License
📄 License
Permalink: 📄 License
MIT License - see
LICENSE
LICENSE
file for details.
🤝 Contributing
🤝 Contributing
Permalink: 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
🙋♀️ Support
🙋♀️ Support
Permalink: 🙋♀️ Support
If you encounter any issues:
Check the
troubleshooting section
troubleshooting section
Search existing
GitHub issues
GitHub issues
Create a new issue with detailed information about your problem
Status
: Tested and working with GitHub integration ✓
Built for fun by
@petesena
@petesena
❤️
About
About
No description, website, or topics provided.
Resources
Resources
Readme
Readme
License
License
MIT license
MIT license
Activity
Activity
Stars
Stars
8 stars
8
stars
Watchers
Watchers
0 watching
0
watching
Forks
Forks
4 forks
4
forks
Report repository
Report repository
Releases
Releases
Releases
No releases published
Packages
Packages
Packages
No packages published
Contributors 2
Contributors 2
Contributors
2
@sourcegate
sourcegate
sourcegate
@claude
claude Claude
claude
Claude
Languages
Languages
JavaScript 57.8%
JavaScript
57.8%
TypeScript 42.2%
TypeScript
42.2%
Footer
Footer
GitHub Homepage
© 2026 GitHub, Inc.
Footer navigation
Footer navigation
Terms
Terms
Privacy
Privacy...
|
72428
|
NULL
|
|
84053
|
2249
|
12
|
2026-04-27T07:41:40.536212+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-27/1777 /Users/lukas/.screenpipe/data/data/2026-04-27/1777275700536_m1.jpg...
|
Firefox
|
speed test okla - Google Search — Work
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Unnamed Group
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
speed test okla - Google Search
speed test okla - Google Search
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Accessibility help
Accessibility help
Accessibility feedback
Accessibility feedback
Go to Google Home
speed test okla
speed test okla
Clear
Search by voice
Search by image
Search
Google apps
Google Account: [EMAIL]
AI Mode
AI Mode
All
All
Images
Images
Forums
Forums
Videos
Videos
Short videos
Short videos
News
News
More filters
More
Tools
Tools
Search Results
Search Results
These are results for speed test ookla Search instead for speed test okla
These are results for
speed test ookla
speed test
ookla
Search instead for
speed test okla
Web result with site links
Web result with site links
Speedtest by Ookla - The Global Broadband Speed Test Speedtest by Ookla https://www.speedtest.net
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla
https://www.speedtest.net
About this result
Speedtest
is better with the app. Download the
Speedtest
app for more metrics, video testing, mobile coverage maps, and more. Get it on Google Play.
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest by Ookla - Apps on Google Play Google Play https://play.google.com › store › apps › details › id=org....
Speedtest by Ookla - Apps on Google Play
Speedtest by Ookla - Apps on Google Play
Google Play
https://play.google.com
› store › apps › details › id=org....
About this result
The
Speedtest
® app now features Downdetector® to help you plan, assess, and troubleshoot your internet connection for seamless connectivity in one location.
Speedtest by Ookla - App Store - Apple Apple https://apps.apple.com › app › speedtest-by-ookla
Speedtest by Ookla - App Store - Apple
Speedtest by Ookla - App Store - Apple
Apple
https://apps.apple.com
› app › speedtest-by-ookla
About this result
Use Speedtest® for a quick, easy, one-tap connection internet speed test
—accurate anywhere thanks to our global server network.
Ookla and Microsoft Partner to Launch Speedtest from the ... ookla.com https://www.ookla.com › articles › ookla-and-microsoft-...
Ookla and Microsoft Partner to Launch Speedtest from the ...
Ookla and Microsoft Partner to Launch Speedtest from the ...
ookla.com
https://www.ookla.com
› articles › ookla-and-microsoft-...
About this result
Apr 17, 2026
—
Ookla and Microsoft announce an expanded partnership,
establishing Speedtest® as the integrated network performance testing platform
across Bing ...
Network Performance and Speed Test / UK, US, Europe, Asia ... UK Speedtest https://speedtest.net.uk
Network Performance and Speed Test / UK, US, Europe, Asia ...
Network Performance and Speed Test / UK, US, Europe, Asia ...
UK Speedtest
https://speedtest.net.uk
About this result
This test uses your browser to
measure your internet connection speed
. For best results, close other applications and browser tabs.
Speedtest Custom - Test your internet speeds speedtestcustom.com https://unidata.speedtestcustom.com
Speedtest Custom - Test your internet speeds
Speedtest Custom - Test your internet speeds
speedtestcustom.com
https://unidata.speedtestcustom.com
About this result
Test your internet speed
Company Logo. GO. IdeaTek Telcom. Wichita, KS. Ookla Privacy Policy.
Speedtest.net Wikipedia https://en.wikipedia.org › wiki › Speedtest
Speedtest.net
Speedtest.net
Wikipedia
https://en.wikipedia.org
› wiki › Speedtest
About this result
Speedtest
.net, also known as
Speedtest
by
Ookla
, is a web service that provides free analysis of Internet access performance metrics
People also search for
People also search for
Internet speed test
Internet
speed test
Fast speed test
Fast...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Unnamed Group","depth":4,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"[JY-20725] Sentry Hubspot Rate limit - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] Sentry Hubspot Rate limit - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20699] Wrong formatting for summary in the CRM - Jira","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20699] Wrong formatting for summary in the CRM - Jira","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"speed test okla - Google Search","depth":4,"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"speed test okla - Google Search","depth":5,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.0,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.016666668,"top":0.0,"width":0.022222223,"height":0.035555556},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to main content","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to main content","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Accessibility help","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Accessibility help","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Accessibility feedback","depth":7,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Accessibility feedback","depth":8,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to Google Home","depth":10,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"speed test okla","depth":9,"value":"speed test okla","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"speed test okla","depth":10,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Search by voice","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Search by image","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Search","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Google apps","depth":9,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Google Account: lukas.kovalik@jiminny.com","depth":8,"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"AI Mode","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AI Mode","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"All","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Images","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Images","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Forums","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Forums","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Videos","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Videos","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Short videos","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Short videos","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"News","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"News","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"More filters","depth":17,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Tools","depth":16,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Tools","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Search Results","depth":8,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search Results","depth":9,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"These are results for speed test ookla Search instead for speed test okla","depth":12,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"These are results for","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"speed test ookla","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"speed test","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ookla","depth":14,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search instead for","depth":13,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"speed test okla","depth":13,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Web result with site links","depth":15,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Web result with site links","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest by Ookla - The Global Broadband Speed Test Speedtest by Ookla https://www.speedtest.net","depth":17,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXHeading","text":"Speedtest by Ookla - The Global Broadband Speed Test","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla - The Global Broadband Speed Test","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://www.speedtest.net","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":17,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is better with the app. Download the","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app for more metrics, video testing, mobile coverage maps, and more. Get it on Google Play.","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest por Ookla","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest por Ookla","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest por Ookla","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Use Speedtest en todos sus dispositivos con nuestras ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest.net Desktop App","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest.net Desktop App","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest.net Desktop App","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Our mission at Speedtest by Ookla","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"®","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is to make the internet faster ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest Apps","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest Apps","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest Apps","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest for Android","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest for Android","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest for Android","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest app for Android and check if your ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test for Windows","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Test for Windows","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Test for Windows","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest desktop app for Windows to ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"More results from speedtest.net »","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"More results from speedtest.net »","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest por Ookla","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest por Ookla","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest por Ookla","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Use Speedtest en todos sus dispositivos con nuestras ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest.net Desktop App","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest.net Desktop App","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest.net Desktop App","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Our mission at Speedtest by Ookla","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"®","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is to make the internet faster ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest Apps","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest Apps","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest Apps","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest for Android","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest for Android","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest for Android","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest app for Android and check if your ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test for Windows","depth":18,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Test for Windows","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Test for Windows","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest desktop app for Windows to ...","depth":19,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"More results from speedtest.net »","depth":19,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"More results from speedtest.net »","depth":20,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest by Ookla - Apps on Google Play Google Play https://play.google.com › store › apps › details › id=org....","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest by Ookla - Apps on Google Play","depth":17,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla - Apps on Google Play","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Google Play","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://play.google.com","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"› store › apps › details › id=org....","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"The","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"® app now features Downdetector® to help you plan, assess, and troubleshoot your internet connection for seamless connectivity in one location.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest by Ookla - App Store - Apple Apple https://apps.apple.com › app › speedtest-by-ookla","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest by Ookla - App Store - Apple","depth":17,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla - App Store - Apple","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Apple","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://apps.apple.com","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"› app › speedtest-by-ookla","depth":22,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Use Speedtest® for a quick, easy, one-tap connection internet speed test","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—accurate anywhere thanks to our global server network.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Ookla and Microsoft Partner to Launch Speedtest from the ... ookla.com https://www.ookla.com › articles › ookla-and-microsoft-...","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Ookla and Microsoft Partner to Launch Speedtest from the ...","depth":17,"bounds":{"left":0.24409722,"top":0.0,"width":0.3795139,"height":0.034444444},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ookla and Microsoft Partner to Launch Speedtest from the ...","depth":18,"bounds":{"left":0.24409722,"top":0.0,"width":0.3795139,"height":0.028333334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ookla.com","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://www.ookla.com","depth":21,"bounds":{"left":0.271875,"top":0.0,"width":0.08298611,"height":0.015555556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"› articles › ookla-and-microsoft-...","depth":22,"bounds":{"left":0.3548611,"top":0.0,"width":0.123958334,"height":0.015555556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.484375,"top":0.0,"width":0.019444445,"height":0.022222223},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Apr 17, 2026","depth":16,"bounds":{"left":0.24409722,"top":0.0,"width":0.055555556,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":16,"bounds":{"left":0.29965279,"top":0.0,"width":0.015277778,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ookla and Microsoft announce an expanded partnership,","depth":16,"bounds":{"left":0.31493056,"top":0.0,"width":0.24722221,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"establishing Speedtest® as the integrated network performance testing platform","depth":17,"bounds":{"left":0.24409722,"top":0.0,"width":0.44479167,"height":0.04222222},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"across Bing ...","depth":16,"bounds":{"left":0.4861111,"top":0.0,"width":0.06423611,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Network Performance and Speed Test / UK, US, Europe, Asia ... UK Speedtest https://speedtest.net.uk","depth":16,"bounds":{"left":0.24409722,"top":0.05,"width":0.38402778,"height":0.055},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Network Performance and Speed Test / UK, US, Europe, Asia ...","depth":17,"bounds":{"left":0.24409722,"top":0.08444444,"width":0.38402778,"height":0.034444444},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Network Performance and Speed Test / UK, US, Europe, Asia ...","depth":18,"bounds":{"left":0.24409722,"top":0.090555556,"width":0.38402778,"height":0.028333334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UK Speedtest","depth":21,"bounds":{"left":0.271875,"top":0.044444446,"width":0.060069446,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://speedtest.net.uk","depth":21,"bounds":{"left":0.271875,"top":0.06666667,"width":0.08611111,"height":0.015555556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.36354166,"top":0.062222224,"width":0.019444445,"height":0.022222223},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"This test uses your browser to","depth":16,"bounds":{"left":0.24409722,"top":0.12555556,"width":0.13229166,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"measure your internet connection speed","depth":17,"bounds":{"left":0.37638888,"top":0.12555556,"width":0.1875,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":". For best results, close other applications and browser tabs.","depth":16,"bounds":{"left":0.24409722,"top":0.12555556,"width":0.4451389,"height":0.04222222},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest Custom - Test your internet speeds speedtestcustom.com https://unidata.speedtestcustom.com","depth":16,"bounds":{"left":0.24409722,"top":0.21222222,"width":0.28715277,"height":0.055},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest Custom - Test your internet speeds","depth":17,"bounds":{"left":0.24409722,"top":0.24666667,"width":0.28715277,"height":0.034444444},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest Custom - Test your internet speeds","depth":18,"bounds":{"left":0.24409722,"top":0.25277779,"width":0.28715277,"height":0.028333334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"speedtestcustom.com","depth":21,"bounds":{"left":0.271875,"top":0.20666666,"width":0.094444446,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://unidata.speedtestcustom.com","depth":21,"bounds":{"left":0.271875,"top":0.22888888,"width":0.13576388,"height":0.015555556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.41319445,"top":0.22444445,"width":0.019444445,"height":0.022222223},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Test your internet speed","depth":17,"bounds":{"left":0.24409722,"top":0.28777778,"width":0.11215278,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Company Logo. GO. IdeaTek Telcom. Wichita, KS. Ookla Privacy Policy.","depth":16,"bounds":{"left":0.35625,"top":0.28777778,"width":0.31354168,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest.net Wikipedia https://en.wikipedia.org › wiki › Speedtest","depth":16,"bounds":{"left":0.24409722,"top":0.3561111,"width":0.17916666,"height":0.04888889},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest.net","depth":17,"bounds":{"left":0.24409722,"top":0.38444445,"width":0.088194445,"height":0.034444444},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest.net","depth":18,"bounds":{"left":0.24409722,"top":0.39055556,"width":0.088194445,"height":0.028333334},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Wikipedia","depth":21,"bounds":{"left":0.271875,"top":0.34444445,"width":0.042013887,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://en.wikipedia.org","depth":21,"bounds":{"left":0.271875,"top":0.36666667,"width":0.08506945,"height":0.015555556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"› wiki › Speedtest","depth":22,"bounds":{"left":0.35694444,"top":0.36666667,"width":0.06631944,"height":0.015555556},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.42743057,"top":0.36222222,"width":0.019444445,"height":0.022222223},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest","depth":17,"bounds":{"left":0.24409722,"top":0.42555556,"width":0.046527777,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":".net, also known as","depth":16,"bounds":{"left":0.290625,"top":0.42555556,"width":0.08576389,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest","depth":17,"bounds":{"left":0.37638888,"top":0.42555556,"width":0.046527777,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"by","depth":16,"bounds":{"left":0.42291668,"top":0.42555556,"width":0.015625,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ookla","depth":17,"bounds":{"left":0.43854168,"top":0.42555556,"width":0.027083334,"height":0.017777778},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":", is a web service that provides free analysis of Internet access performance metrics","depth":16,"bounds":{"left":0.24409722,"top":0.42555556,"width":0.42256945,"height":0.04222222},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"People also search for","depth":14,"bounds":{"left":0.24409722,"top":0.5044444,"width":0.15104167,"height":0.031111112},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"People also search for","depth":15,"bounds":{"left":0.24409722,"top":0.5044444,"width":0.15104167,"height":0.031111112},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Internet speed test","depth":15,"bounds":{"left":0.24409722,"top":0.5422222,"width":0.22083333,"height":0.06666667},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Internet","depth":18,"bounds":{"left":0.25520834,"top":0.5644444,"width":0.043402776,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"speed test","depth":18,"bounds":{"left":0.2986111,"top":0.5644444,"width":0.05659722,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Fast speed test","depth":15,"bounds":{"left":0.24409722,"top":0.60888886,"width":0.22083333,"height":0.06666667},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Fast","depth":18,"bounds":{"left":0.25520834,"top":0.6311111,"width":0.022916667,"height":0.022777777},"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
5432052262029862225
|
-3938548884972022689
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Unnamed Group
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
speed test okla - Google Search
speed test okla - Google Search
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Accessibility help
Accessibility help
Accessibility feedback
Accessibility feedback
Go to Google Home
speed test okla
speed test okla
Clear
Search by voice
Search by image
Search
Google apps
Google Account: [EMAIL]
AI Mode
AI Mode
All
All
Images
Images
Forums
Forums
Videos
Videos
Short videos
Short videos
News
News
More filters
More
Tools
Tools
Search Results
Search Results
These are results for speed test ookla Search instead for speed test okla
These are results for
speed test ookla
speed test
ookla
Search instead for
speed test okla
Web result with site links
Web result with site links
Speedtest by Ookla - The Global Broadband Speed Test Speedtest by Ookla https://www.speedtest.net
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla
https://www.speedtest.net
About this result
Speedtest
is better with the app. Download the
Speedtest
app for more metrics, video testing, mobile coverage maps, and more. Get it on Google Play.
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest by Ookla - Apps on Google Play Google Play https://play.google.com › store › apps › details › id=org....
Speedtest by Ookla - Apps on Google Play
Speedtest by Ookla - Apps on Google Play
Google Play
https://play.google.com
› store › apps › details › id=org....
About this result
The
Speedtest
® app now features Downdetector® to help you plan, assess, and troubleshoot your internet connection for seamless connectivity in one location.
Speedtest by Ookla - App Store - Apple Apple https://apps.apple.com › app › speedtest-by-ookla
Speedtest by Ookla - App Store - Apple
Speedtest by Ookla - App Store - Apple
Apple
https://apps.apple.com
› app › speedtest-by-ookla
About this result
Use Speedtest® for a quick, easy, one-tap connection internet speed test
—accurate anywhere thanks to our global server network.
Ookla and Microsoft Partner to Launch Speedtest from the ... ookla.com https://www.ookla.com › articles › ookla-and-microsoft-...
Ookla and Microsoft Partner to Launch Speedtest from the ...
Ookla and Microsoft Partner to Launch Speedtest from the ...
ookla.com
https://www.ookla.com
› articles › ookla-and-microsoft-...
About this result
Apr 17, 2026
—
Ookla and Microsoft announce an expanded partnership,
establishing Speedtest® as the integrated network performance testing platform
across Bing ...
Network Performance and Speed Test / UK, US, Europe, Asia ... UK Speedtest https://speedtest.net.uk
Network Performance and Speed Test / UK, US, Europe, Asia ...
Network Performance and Speed Test / UK, US, Europe, Asia ...
UK Speedtest
https://speedtest.net.uk
About this result
This test uses your browser to
measure your internet connection speed
. For best results, close other applications and browser tabs.
Speedtest Custom - Test your internet speeds speedtestcustom.com https://unidata.speedtestcustom.com
Speedtest Custom - Test your internet speeds
Speedtest Custom - Test your internet speeds
speedtestcustom.com
https://unidata.speedtestcustom.com
About this result
Test your internet speed
Company Logo. GO. IdeaTek Telcom. Wichita, KS. Ookla Privacy Policy.
Speedtest.net Wikipedia https://en.wikipedia.org › wiki › Speedtest
Speedtest.net
Speedtest.net
Wikipedia
https://en.wikipedia.org
› wiki › Speedtest
About this result
Speedtest
.net, also known as
Speedtest
by
Ookla
, is a web service that provides free analysis of Internet access performance metrics
People also search for
People also search for
Internet speed test
Internet
speed test
Fast speed test
Fast...
|
84051
|
NULL
|
|
84054
|
2250
|
11
|
2026-04-27T07:41:40.436857+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-27/1777 /Users/lukas/.screenpipe/data/data/2026-04-27/1777275700436_m2.jpg...
|
Firefox
|
speed test okla - Google Search — Work
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Unnamed Group
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
speed test okla - Google Search
speed test okla - Google Search
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Accessibility help
Accessibility help
Accessibility feedback
Accessibility feedback
Go to Google Home
speed test okla
speed test okla
Clear
Search by voice
Search by image
Search
Google apps
Google Account: [EMAIL]
AI Mode
AI Mode
All
All
Images
Images
Forums
Forums
Videos
Videos
Short videos
Short videos
News
News
More filters
More
Tools
Tools
Search Results
Search Results
These are results for speed test ookla Search instead for speed test okla
These are results for
speed test ookla
speed test
ookla
Search instead for
speed test okla
Web result with site links
Web result with site links
Speedtest by Ookla - The Global Broadband Speed Test Speedtest by Ookla https://www.speedtest.net
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla
https://www.speedtest.net
About this result
Speedtest
is better with the app. Download the
Speedtest
app for more metrics, video testing, mobile coverage maps, and more. Get it on Google Play.
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest by Ookla - Apps on Google Play Google Play https://play.google.com › store › apps › details › id=org....
Speedtest by Ookla - Apps on Google Play
Speedtest by Ookla - Apps on Google Play
Google Play
https://play.google.com
› store › apps › details › id=org....
About this result
The
Speedtest
® app now features Downdetector® to help you plan, assess, and troubleshoot your internet connection for seamless connectivity in one location.
Speedtest by Ookla - App Store - Apple Apple https://apps.apple.com › app › speedtest-by-ookla
Speedtest by Ookla - App Store - Apple
Speedtest by Ookla - App Store - Apple
Apple
https://apps.apple.com
› app › speedtest-by-ookla
About this result
Use Speedtest® for a quick, easy, one-tap connection internet speed test
—accurate anywhere thanks to our global server network.
Ookla and Microsoft Partner to Launch Speedtest from the ... ookla.com https://www.ookla.com › articles › ookla-and-microsoft-...
Ookla and Microsoft Partner to Launch Speedtest from the ...
Ookla and Microsoft Partner to Launch Speedtest from the ...
ookla.com
https://www.ookla.com
› articles › ookla-and-microsoft-...
About this result
Apr 17, 2026
—
Ookla and Microsoft announce an expanded partnership,
establishing Speedtest® as the integrated network performance testing platform
across Bing ...
Network Performance and Speed Test / UK, US, Europe, Asia ... UK Speedtest https://speedtest.net.uk
Network Performance and Speed Test / UK, US, Europe, Asia ...
Network Performance and Speed Test / UK, US, Europe, Asia ...
UK Speedtest
https://speedtest.net.uk
About this result
This test uses your browser to
measure your internet connection speed
. For best results, close other applications and browser tabs.
Speedtest Custom - Test your internet speeds speedtestcustom.com https://unidata.speedtestcustom.com
Speedtest Custom - Test your internet speeds
Speedtest Custom - Test your internet speeds
speedtestcustom.com
https://unidata.speedtestcustom.com
About this result
Test your internet speed
Company Logo. GO. IdeaTek Telcom. Wichita, KS. Ookla Privacy Policy.
Speedtest.net Wikipedia https://en.wikipedia.org › wiki › Speedtest
Speedtest.net
Speedtest.net
Wikipedia
https://en.wikipedia.org...
|
[{"role":"AXRadioButton","text [{"role":"AXRadioButton","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":4,"bounds":{"left":0.23105054,"top":0.0518755,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira","depth":5,"bounds":{"left":0.2443484,"top":0.06304868,"width":0.10106383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.08459697,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.09577015,"width":0.19182181,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira","depth":4,"bounds":{"left":0.23105054,"top":0.11731844,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira","depth":5,"bounds":{"left":0.2443484,"top":0.12849163,"width":0.12982048,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.15003991,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.16121309,"width":0.16356383,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.18276137,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.19393456,"width":0.14128989,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"Pipelines - jiminny/app","depth":4,"bounds":{"left":0.23105054,"top":0.21548285,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Pipelines - jiminny/app","depth":5,"bounds":{"left":0.2443484,"top":0.22665602,"width":0.039228722,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Unnamed Group","depth":4,"bounds":{"left":0.23387633,"top":0.25339186,"width":0.007978723,"height":0.01915403},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":true},{"role":"AXRadioButton","text":"[JY-20725] Sentry Hubspot Rate limit - Jira","depth":4,"bounds":{"left":0.23387633,"top":0.27693537,"width":0.07679521,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20725] Sentry Hubspot Rate limit - Jira","depth":5,"bounds":{"left":0.24700798,"top":0.28810853,"width":0.07563165,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"[JY-20699] Wrong formatting for summary in the CRM - Jira","depth":4,"bounds":{"left":0.23387633,"top":0.30965683,"width":0.07679521,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"[JY-20699] Wrong formatting for summary in the CRM - Jira","depth":5,"bounds":{"left":0.24700798,"top":0.32083002,"width":0.105053194,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXRadioButton","text":"speed test okla - Google Search","depth":4,"bounds":{"left":0.23105054,"top":0.3423783,"width":0.07962101,"height":0.032721467},"help_text":"","role_description":"tab","subrole":"AXTabButton","is_enabled":true,"is_focused":false,"is_selected":true},{"role":"AXStaticText","text":"speed test okla - Google Search","depth":5,"bounds":{"left":0.2443484,"top":0.35355148,"width":0.055851065,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Close tab","depth":5,"bounds":{"left":0.29837102,"top":0.34956107,"width":0.007978723,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"New Tab","depth":4,"bounds":{"left":0.23387633,"top":0.37669593,"width":0.07413564,"height":0.025538707},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Customize sidebar","depth":6,"bounds":{"left":0.23387633,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open Google Gemini (⌃X)","depth":6,"bounds":{"left":0.24484707,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Tabs from other devices","depth":6,"bounds":{"left":0.25598404,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open history (⇧⌘H)","depth":6,"bounds":{"left":0.26712102,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXCheckBox","text":"Open bookmarks (⌘B)","depth":6,"bounds":{"left":0.27825797,"top":0.97007185,"width":0.010638298,"height":0.025538707},"help_text":"","role_description":"toggle button","subrole":"AXToggle","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXLink","text":"Skip to main content","depth":7,"bounds":{"left":0.31432846,"top":0.0981644,"width":0.03656915,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Skip to main content","depth":8,"bounds":{"left":0.31981382,"top":0.101356745,"width":0.025598405,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Accessibility help","depth":7,"bounds":{"left":0.31432846,"top":0.0981644,"width":0.03656915,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Accessibility help","depth":8,"bounds":{"left":0.31998006,"top":0.101356745,"width":0.025265958,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Accessibility feedback","depth":7,"bounds":{"left":0.31432846,"top":0.12051077,"width":0.03656915,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Accessibility feedback","depth":8,"bounds":{"left":0.31998006,"top":0.123703115,"width":0.025265958,"height":0.028731046},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Go to Google Home","depth":10,"bounds":{"left":0.3352726,"top":0.08060654,"width":0.030585106,"height":0.026336791},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXComboBox","text":"speed test okla","depth":9,"bounds":{"left":0.38746676,"top":0.07342378,"width":0.21875,"height":0.03990423},"value":"speed test okla","help_text":"","role_description":"combo box","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"speed test okla","depth":10,"bounds":{"left":0.38746676,"top":0.08539505,"width":0.036901597,"height":0.016360734},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Clear","depth":9,"bounds":{"left":0.6062167,"top":0.07342378,"width":0.015957447,"height":0.03990423},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Search by voice","depth":9,"bounds":{"left":0.62383646,"top":0.083798885,"width":0.013297873,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Search by image","depth":9,"bounds":{"left":0.6371343,"top":0.083798885,"width":0.013297873,"height":0.01915403},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Search","depth":9,"bounds":{"left":0.65176195,"top":0.07342378,"width":0.01462766,"height":0.03990423},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Google apps","depth":9,"bounds":{"left":0.9637633,"top":0.07741421,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXMenuButton","text":"Google Account: lukas.kovalik@jiminny.com","depth":8,"bounds":{"left":0.9797208,"top":0.07741421,"width":0.013297873,"height":0.031923383},"help_text":"","role_description":"menu button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXLink","text":"AI Mode","depth":17,"bounds":{"left":0.38314494,"top":0.12210695,"width":0.025930852,"height":0.03830806},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"AI Mode","depth":19,"bounds":{"left":0.3871343,"top":0.13647246,"width":0.017952127,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"All","depth":17,"bounds":{"left":0.4090758,"top":0.12210695,"width":0.013464096,"height":0.03830806},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":false,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"All","depth":20,"bounds":{"left":0.41306517,"top":0.13647246,"width":0.005485372,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Images","depth":17,"bounds":{"left":0.4225399,"top":0.12210695,"width":0.023769947,"height":0.03830806},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Images","depth":19,"bounds":{"left":0.42652926,"top":0.13647246,"width":0.015791224,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Forums","depth":17,"bounds":{"left":0.44630983,"top":0.12210695,"width":0.024268618,"height":0.03830806},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Forums","depth":19,"bounds":{"left":0.4502992,"top":0.13647246,"width":0.016289894,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Videos","depth":17,"bounds":{"left":0.47057846,"top":0.12210695,"width":0.022772606,"height":0.03830806},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Videos","depth":19,"bounds":{"left":0.47456783,"top":0.13647246,"width":0.014793883,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Short videos","depth":17,"bounds":{"left":0.49335107,"top":0.12210695,"width":0.03557181,"height":0.03830806},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Short videos","depth":19,"bounds":{"left":0.4973404,"top":0.13647246,"width":0.027593086,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"News","depth":17,"bounds":{"left":0.52892286,"top":0.12210695,"width":0.019946808,"height":0.03830806},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"News","depth":19,"bounds":{"left":0.53291225,"top":0.13647246,"width":0.011968086,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"More filters","depth":17,"bounds":{"left":0.54886967,"top":0.12210695,"width":0.025099734,"height":0.03830806},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"More","depth":20,"bounds":{"left":0.55285907,"top":0.13647246,"width":0.011136968,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Tools","depth":16,"bounds":{"left":0.5739694,"top":0.12210695,"width":0.02543218,"height":0.03830806},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Tools","depth":18,"bounds":{"left":0.57795876,"top":0.13647246,"width":0.011469414,"height":0.014764565},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Search Results","depth":8,"bounds":{"left":0.31067154,"top":0.16041501,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search Results","depth":9,"bounds":{"left":0.31067154,"top":0.16041501,"width":0.03158245,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"These are results for speed test ookla Search instead for speed test okla","depth":12,"bounds":{"left":0.3871343,"top":0.17956904,"width":0.21675532,"height":0.051077414},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"These are results for","depth":13,"bounds":{"left":0.3871343,"top":0.18475658,"width":0.05618351,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"speed test ookla","depth":13,"bounds":{"left":0.44331783,"top":0.18475658,"width":0.045545213,"height":0.018355945},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"speed test","depth":14,"bounds":{"left":0.44331783,"top":0.18475658,"width":0.029920213,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ookla","depth":14,"bounds":{"left":0.47323802,"top":0.18475658,"width":0.015625,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Search instead for","depth":13,"bounds":{"left":0.3871343,"top":0.20630486,"width":0.042719416,"height":0.015163607},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"speed test okla","depth":13,"bounds":{"left":0.42985374,"top":0.20630486,"width":0.034574468,"height":0.015163607},"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Web result with site links","depth":15,"bounds":{"left":0.3871343,"top":0.25139666,"width":0.0003324468,"height":0.0007980846},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Web result with site links","depth":16,"bounds":{"left":0.3871343,"top":0.25179568,"width":0.09524601,"height":0.021947326},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest by Ookla - The Global Broadband Speed Test Speedtest by Ookla https://www.speedtest.net","depth":17,"bounds":{"left":0.3871343,"top":0.24541101,"width":0.16555852,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":true,"is_selected":false},{"role":"AXHeading","text":"Speedtest by Ookla - The Global Broadband Speed Test","depth":18,"bounds":{"left":0.3871343,"top":0.26576218,"width":0.16555852,"height":0.024740623},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla - The Global Broadband Speed Test","depth":19,"bounds":{"left":0.3871343,"top":0.27015164,"width":0.16555852,"height":0.020351157},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla","depth":22,"bounds":{"left":0.40043217,"top":0.23703113,"width":0.04055851,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://www.speedtest.net","depth":22,"bounds":{"left":0.40043217,"top":0.2529928,"width":0.04537899,"height":0.011173184},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":17,"bounds":{"left":0.44780585,"top":0.24980047,"width":0.00930851,"height":0.015961692},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest","depth":18,"bounds":{"left":0.3871343,"top":0.2952913,"width":0.022273935,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is better with the app. Download the","depth":17,"bounds":{"left":0.40940824,"top":0.2952913,"width":0.07646277,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest","depth":18,"bounds":{"left":0.48587102,"top":0.2952913,"width":0.022273935,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"app for more metrics, video testing, mobile coverage maps, and more. Get it on Google Play.","depth":17,"bounds":{"left":0.3871343,"top":0.2952913,"width":0.20994017,"height":0.030327214},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest por Ookla","depth":18,"bounds":{"left":0.3934508,"top":0.3519553,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest por Ookla","depth":19,"bounds":{"left":0.3934508,"top":0.35395053,"width":0.055518616,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest por Ookla","depth":20,"bounds":{"left":0.3934508,"top":0.35395053,"width":0.055518616,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Use Speedtest en todos sus dispositivos con nuestras ...","depth":19,"bounds":{"left":0.3934508,"top":0.37509975,"width":0.11668883,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest.net Desktop App","depth":18,"bounds":{"left":0.3934508,"top":0.4086193,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest.net Desktop App","depth":19,"bounds":{"left":0.3934508,"top":0.41061452,"width":0.07430186,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest.net Desktop App","depth":20,"bounds":{"left":0.3934508,"top":0.41061452,"width":0.07430186,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Our mission at Speedtest by Ookla","depth":19,"bounds":{"left":0.3934508,"top":0.4349561,"width":0.07197473,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"®","depth":20,"bounds":{"left":0.46542552,"top":0.4329609,"width":0.0028257978,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is to make the internet faster ...","depth":19,"bounds":{"left":0.46825132,"top":0.4349561,"width":0.065159574,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest Apps","depth":18,"bounds":{"left":0.3934508,"top":0.46847567,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest Apps","depth":19,"bounds":{"left":0.3934508,"top":0.47047088,"width":0.04288564,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest Apps","depth":20,"bounds":{"left":0.3934508,"top":0.47047088,"width":0.04288564,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...","depth":19,"bounds":{"left":0.3934508,"top":0.49162012,"width":0.12583111,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest for Android","depth":18,"bounds":{"left":0.3934508,"top":0.5251397,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest for Android","depth":19,"bounds":{"left":0.3934508,"top":0.5271349,"width":0.059507977,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest for Android","depth":20,"bounds":{"left":0.3934508,"top":0.5271349,"width":0.059507977,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest app for Android and check if your ...","depth":19,"bounds":{"left":0.3934508,"top":0.5482841,"width":0.13480718,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test for Windows","depth":18,"bounds":{"left":0.3934508,"top":0.5818037,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Test for Windows","depth":19,"bounds":{"left":0.3934508,"top":0.5837989,"width":0.046210106,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Test for Windows","depth":20,"bounds":{"left":0.3934508,"top":0.5837989,"width":0.046210106,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest desktop app for Windows to ...","depth":19,"bounds":{"left":0.3934508,"top":0.6049481,"width":0.123836435,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"More results from speedtest.net »","depth":19,"bounds":{"left":0.39311835,"top":0.63766956,"width":0.06931516,"height":0.01915403},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"More results from speedtest.net »","depth":20,"bounds":{"left":0.39311835,"top":0.6408619,"width":0.06931516,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest por Ookla","depth":18,"bounds":{"left":0.3934508,"top":0.3519553,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest por Ookla","depth":19,"bounds":{"left":0.3934508,"top":0.35395053,"width":0.055518616,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest por Ookla","depth":20,"bounds":{"left":0.3934508,"top":0.35395053,"width":0.055518616,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Use Speedtest en todos sus dispositivos con nuestras ...","depth":19,"bounds":{"left":0.3934508,"top":0.37509975,"width":0.11668883,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest.net Desktop App","depth":18,"bounds":{"left":0.3934508,"top":0.4086193,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest.net Desktop App","depth":19,"bounds":{"left":0.3934508,"top":0.41061452,"width":0.07430186,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest.net Desktop App","depth":20,"bounds":{"left":0.3934508,"top":0.41061452,"width":0.07430186,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Our mission at Speedtest by Ookla","depth":19,"bounds":{"left":0.3934508,"top":0.4349561,"width":0.07197473,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"®","depth":20,"bounds":{"left":0.46542552,"top":0.4329609,"width":0.0028257978,"height":0.010774142},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"is to make the internet faster ...","depth":19,"bounds":{"left":0.46825132,"top":0.4349561,"width":0.065159574,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest Apps","depth":18,"bounds":{"left":0.3934508,"top":0.46847567,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest Apps","depth":19,"bounds":{"left":0.3934508,"top":0.47047088,"width":0.04288564,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest Apps","depth":20,"bounds":{"left":0.3934508,"top":0.47047088,"width":0.04288564,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...","depth":19,"bounds":{"left":0.3934508,"top":0.49162012,"width":0.12583111,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Speedtest for Android","depth":18,"bounds":{"left":0.3934508,"top":0.5251397,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest for Android","depth":19,"bounds":{"left":0.3934508,"top":0.5271349,"width":0.059507977,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Speedtest for Android","depth":20,"bounds":{"left":0.3934508,"top":0.5271349,"width":0.059507977,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest app for Android and check if your ...","depth":19,"bounds":{"left":0.3934508,"top":0.5482841,"width":0.13480718,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXHeading","text":"Test for Windows","depth":18,"bounds":{"left":0.3934508,"top":0.5818037,"width":0.19015957,"height":0.0207502},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXLink","text":"Test for Windows","depth":19,"bounds":{"left":0.3934508,"top":0.5837989,"width":0.046210106,"height":0.018355945},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Test for Windows","depth":20,"bounds":{"left":0.3934508,"top":0.5837989,"width":0.046210106,"height":0.018355945},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Download the free Speedtest desktop app for Windows to ...","depth":19,"bounds":{"left":0.3934508,"top":0.6049481,"width":0.123836435,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"More results from speedtest.net »","depth":19,"bounds":{"left":0.39311835,"top":0.63766956,"width":0.06931516,"height":0.01915403},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"More results from speedtest.net »","depth":20,"bounds":{"left":0.39311835,"top":0.6408619,"width":0.06931516,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest by Ookla - Apps on Google Play Google Play https://play.google.com › store › apps › details › id=org....","depth":16,"bounds":{"left":0.3871343,"top":0.6863527,"width":0.12682846,"height":0.039505187},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest by Ookla - Apps on Google Play","depth":17,"bounds":{"left":0.3871343,"top":0.71109337,"width":0.12682846,"height":0.024740623},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla - Apps on Google Play","depth":18,"bounds":{"left":0.3871343,"top":0.71548283,"width":0.12682846,"height":0.020351157},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Google Play","depth":21,"bounds":{"left":0.40043217,"top":0.6823623,"width":0.02543218,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://play.google.com","depth":21,"bounds":{"left":0.40043217,"top":0.698324,"width":0.040724736,"height":0.011173184},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"› store › apps › details › id=org....","depth":22,"bounds":{"left":0.44115692,"top":0.698324,"width":0.058843084,"height":0.011173184},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.50265956,"top":0.69513166,"width":0.00930851,"height":0.015961692},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"The","depth":16,"bounds":{"left":0.3871343,"top":0.7406225,"width":0.00930851,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest","depth":17,"bounds":{"left":0.39644283,"top":0.7406225,"width":0.022273935,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"® app now features Downdetector® to help you plan, assess, and troubleshoot your internet connection for seamless connectivity in one location.","depth":16,"bounds":{"left":0.3871343,"top":0.7406225,"width":0.20412233,"height":0.030327214},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest by Ookla - App Store - Apple Apple https://apps.apple.com › app › speedtest-by-ookla","depth":16,"bounds":{"left":0.3871343,"top":0.8072626,"width":0.11735372,"height":0.035115723},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest by Ookla - App Store - Apple","depth":17,"bounds":{"left":0.3871343,"top":0.8276137,"width":0.11735372,"height":0.024740623},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest by Ookla - App Store - Apple","depth":18,"bounds":{"left":0.3871343,"top":0.8320032,"width":0.11735372,"height":0.020351157},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Apple","depth":21,"bounds":{"left":0.40043217,"top":0.79888266,"width":0.011968086,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://apps.apple.com","depth":21,"bounds":{"left":0.40043217,"top":0.81484437,"width":0.040059842,"height":0.011173184},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"› app › speedtest-by-ookla","depth":22,"bounds":{"left":0.44049203,"top":0.81484437,"width":0.047539894,"height":0.011173184},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.4900266,"top":0.81165206,"width":0.00930851,"height":0.015961692},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Use Speedtest® for a quick, easy, one-tap connection internet speed test","depth":17,"bounds":{"left":0.3871343,"top":0.85714287,"width":0.16107048,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—accurate anywhere thanks to our global server network.","depth":16,"bounds":{"left":0.3871343,"top":0.85714287,"width":0.20511968,"height":0.030327214},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Ookla and Microsoft Partner to Launch Speedtest from the ... ookla.com https://www.ookla.com › articles › ookla-and-microsoft-...","depth":16,"bounds":{"left":0.3871343,"top":0.9193935,"width":0.18168218,"height":0.039505187},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Ookla and Microsoft Partner to Launch Speedtest from the ...","depth":17,"bounds":{"left":0.3871343,"top":0.94413406,"width":0.18168218,"height":0.024740623},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ookla and Microsoft Partner to Launch Speedtest from the ...","depth":18,"bounds":{"left":0.3871343,"top":0.9485235,"width":0.18168218,"height":0.020351157},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"ookla.com","depth":21,"bounds":{"left":0.40043217,"top":0.915403,"width":0.021276595,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://www.ookla.com","depth":21,"bounds":{"left":0.40043217,"top":0.9313647,"width":0.039727394,"height":0.011173184},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"› articles › ookla-and-microsoft-...","depth":22,"bounds":{"left":0.4401596,"top":0.9313647,"width":0.059341755,"height":0.011173184},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.5021609,"top":0.9281724,"width":0.00930851,"height":0.015961692},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Apr 17, 2026","depth":16,"bounds":{"left":0.3871343,"top":0.9736632,"width":0.026595745,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"—","depth":16,"bounds":{"left":0.41373006,"top":0.9736632,"width":0.00731383,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Ookla and Microsoft announce an expanded partnership,","depth":16,"bounds":{"left":0.42104387,"top":0.9736632,"width":0.118351065,"height":0.012769354},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"establishing Speedtest® as the integrated network performance testing platform","depth":17,"bounds":{"left":0.3871343,"top":0.9736632,"width":0.21293218,"height":0.02633679},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"across Bing ...","depth":16,"bounds":{"left":0.50299203,"top":0.9912211,"width":0.030751329,"height":0.00877893},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Network Performance and Speed Test / UK, US, Europe, Asia ... UK Speedtest https://speedtest.net.uk","depth":16,"bounds":{"left":0.3871343,"top":1.0,"width":0.18384309,"height":-0.035913825},"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Network Performance and Speed Test / UK, US, Europe, Asia ...","depth":17,"bounds":{"left":0.3871343,"top":1.0,"width":0.18384309,"height":-0.0606544},"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Network Performance and Speed Test / UK, US, Europe, Asia ...","depth":18,"bounds":{"left":0.3871343,"top":1.0,"width":0.18384309,"height":-0.065043926},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"UK Speedtest","depth":21,"bounds":{"left":0.40043217,"top":1.0,"width":0.028756648,"height":-0.031923413},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://speedtest.net.uk","depth":21,"bounds":{"left":0.40043217,"top":1.0,"width":0.041223403,"height":-0.04788506},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"bounds":{"left":0.44431517,"top":1.0,"width":0.00930851,"height":-0.044692755},"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"This test uses your browser to","depth":16,"bounds":{"left":0.3871343,"top":1.0,"width":0.06333112,"height":-0.090183616},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"measure your internet connection speed","depth":17,"bounds":{"left":0.4504654,"top":1.0,"width":0.08976064,"height":-0.090183616},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":". For best results, close other applications and browser tabs.","depth":16,"bounds":{"left":0.3871343,"top":1.0,"width":0.2130984,"height":-0.090183616},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest Custom - Test your internet speeds speedtestcustom.com https://unidata.speedtestcustom.com","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest Custom - Test your internet speeds","depth":17,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest Custom - Test your internet speeds","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"speedtestcustom.com","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://unidata.speedtestcustom.com","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"About this result","depth":16,"role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"Test your internet speed","depth":17,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Company Logo. GO. IdeaTek Telcom. Wichita, KS. Ookla Privacy Policy.","depth":16,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXLink","text":"Speedtest.net Wikipedia https://en.wikipedia.org › wiki › Speedtest","depth":16,"help_text":"","role_description":"link","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXHeading","text":"Speedtest.net","depth":17,"help_text":"","role_description":"heading","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Speedtest.net","depth":18,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"Wikipedia","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXStaticText","text":"https://en.wikipedia.org","depth":21,"help_text":"","role_description":"text","subrole":"AXUnknown"}]...
|
-3627176948727351120
|
5571927628144399447
|
click
|
accessibility
|
NULL
|
Platform Sprint 2 Q2 - Platform Team - Scrum Board Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
Platform Sprint 2 Q2 - Platform Team - Scrum Board - Jira
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
JY-20352 | Do not import/update deals with no user_id by nikolaybiaivanov · Pull Request #12007 · jiminny/app
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
[JY-20352] Sync opportunities without a local owner (user_id is null) - Jira
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
JY-20157 add not enough activities notification by LakyLak · Pull Request #12011 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
AI reports promotion pages by nikolay-yankov · Pull Request #11998 · jiminny/app
Pipelines - jiminny/app
Pipelines - jiminny/app
Unnamed Group
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20725] Sentry Hubspot Rate limit - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
[JY-20699] Wrong formatting for summary in the CRM - Jira
speed test okla - Google Search
speed test okla - Google Search
Close tab
New Tab
Customize sidebar
Open Google Gemini (⌃X)
Tabs from other devices
Open history (⇧⌘H)
Open bookmarks (⌘B)
Skip to main content
Skip to main content
Accessibility help
Accessibility help
Accessibility feedback
Accessibility feedback
Go to Google Home
speed test okla
speed test okla
Clear
Search by voice
Search by image
Search
Google apps
Google Account: [EMAIL]
AI Mode
AI Mode
All
All
Images
Images
Forums
Forums
Videos
Videos
Short videos
Short videos
News
News
More filters
More
Tools
Tools
Search Results
Search Results
These are results for speed test ookla Search instead for speed test okla
These are results for
speed test ookla
speed test
ookla
Search instead for
speed test okla
Web result with site links
Web result with site links
Speedtest by Ookla - The Global Broadband Speed Test Speedtest by Ookla https://www.speedtest.net
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla - The Global Broadband Speed Test
Speedtest by Ookla
https://www.speedtest.net
About this result
Speedtest
is better with the app. Download the
Speedtest
app for more metrics, video testing, mobile coverage maps, and more. Get it on Google Play.
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest por Ookla
Speedtest por Ookla
Speedtest por Ookla
Use Speedtest en todos sus dispositivos con nuestras ...
Speedtest.net Desktop App
Speedtest.net Desktop App
Speedtest.net Desktop App
Our mission at Speedtest by Ookla
®
is to make the internet faster ...
Speedtest Apps
Speedtest Apps
Speedtest Apps
© 2006-2026 Ookla, LLC., a Ziff Davis company. All Rights ...
Speedtest for Android
Speedtest for Android
Speedtest for Android
Download the free Speedtest app for Android and check if your ...
Test for Windows
Test for Windows
Test for Windows
Download the free Speedtest desktop app for Windows to ...
More results from speedtest.net »
More results from speedtest.net »
Speedtest by Ookla - Apps on Google Play Google Play https://play.google.com › store › apps › details › id=org....
Speedtest by Ookla - Apps on Google Play
Speedtest by Ookla - Apps on Google Play
Google Play
https://play.google.com
› store › apps › details › id=org....
About this result
The
Speedtest
® app now features Downdetector® to help you plan, assess, and troubleshoot your internet connection for seamless connectivity in one location.
Speedtest by Ookla - App Store - Apple Apple https://apps.apple.com › app › speedtest-by-ookla
Speedtest by Ookla - App Store - Apple
Speedtest by Ookla - App Store - Apple
Apple
https://apps.apple.com
› app › speedtest-by-ookla
About this result
Use Speedtest® for a quick, easy, one-tap connection internet speed test
—accurate anywhere thanks to our global server network.
Ookla and Microsoft Partner to Launch Speedtest from the ... ookla.com https://www.ookla.com › articles › ookla-and-microsoft-...
Ookla and Microsoft Partner to Launch Speedtest from the ...
Ookla and Microsoft Partner to Launch Speedtest from the ...
ookla.com
https://www.ookla.com
› articles › ookla-and-microsoft-...
About this result
Apr 17, 2026
—
Ookla and Microsoft announce an expanded partnership,
establishing Speedtest® as the integrated network performance testing platform
across Bing ...
Network Performance and Speed Test / UK, US, Europe, Asia ... UK Speedtest https://speedtest.net.uk
Network Performance and Speed Test / UK, US, Europe, Asia ...
Network Performance and Speed Test / UK, US, Europe, Asia ...
UK Speedtest
https://speedtest.net.uk
About this result
This test uses your browser to
measure your internet connection speed
. For best results, close other applications and browser tabs.
Speedtest Custom - Test your internet speeds speedtestcustom.com https://unidata.speedtestcustom.com
Speedtest Custom - Test your internet speeds
Speedtest Custom - Test your internet speeds
speedtestcustom.com
https://unidata.speedtestcustom.com
About this result
Test your internet speed
Company Logo. GO. IdeaTek Telcom. Wichita, KS. Ookla Privacy Policy.
Speedtest.net Wikipedia https://en.wikipedia.org › wiki › Speedtest
Speedtest.net
Speedtest.net
Wikipedia
https://en.wikipedia.org...
|
NULL
|
NULL
|
|
20214
|
436
|
17
|
2026-04-15T08:34:04.390371+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-15/1776 /Users/lukas/.screenpipe/data/data/2026-04-15/1776242044390_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M 64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.6G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
648M /Users/lukas/.screenpipe/data
1.1G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Size of the DB itself
ls -lh ~/.screenpipe/db.sqlite
# Size of actual data files (videos/images)
du -sh ~/.screenpipe/data/
# Day by day breakdown
du -sh ~/.screenpipe/data/2026-04-*/
# Compare DB vs total
du -sh ~/.screenpipe/
zsh: command not found: #
-rw-r--r-- 1 lukas staff 1.1G 14 Apr 16:12 /Users/lukas/.screenpipe/db.sqlite
zsh: unknown file attribute: v
651M /Users/lukas/.screenpipe/data/
zsh: command not found: #
zsh: no matches found: /Users/lukas/.screenpipe/data/2026-04-*/
zsh: command not found: #
1.7G /Users/lukas/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # See how the DB space is distributed
sqlite3 ~/.screenpipe/db.sqlite "
SELECT name,
SUM(pgsize)/1024/1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY size_mb DESC
LIMIT 20;"
zsh: command not found: #
^[[A^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name,
SUM(pgsize)/1024/1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY size_mb DESC
LIMIT 20;"
frames|358
ocr_text|347
elements|146
frames_fts_content|76
idx_elements_source_role_text|23
idx_elements_frame_source_role|23
frames_fts_data|19
elements_fts_data|19
idx_elements_frame_source|16
idx_elements_source|13
idx_elements_frame_id|10
elements_fts_docsize|9
idx_elements_parent_id|8
ui_events|3
idx_ui_events_session_id|1
vision_tags|0
video_chunks|0
ui_events_fts_idx|0
ui_events_fts_docsize|0
ui_events_fts_data|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
(SELECT COUNT(*) FROM frames) as frames,
(SELECT COUNT(*) FROM ocr_text) as ocr_rows,
(SELECT COUNT(*) FROM ui_monitoring) as ui_rows;"
Error: in prepare, no such table: ui_monitoring
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT MIN(timestamp) FROM frames;"
2026-04-09T16:53:09.043761+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
691M /Users/lukas/.screenpipe/data
1.1G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
9.0M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.8G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.9G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames
FROM frames
GROUP BY app_name
ORDER BY frames DESC
LIMIT 15;"
|6198
Boosteroid|3593
Firefox|2008
iTerm2|1197
PhpStorm|974
Slack|387
Claude|322
Dia|171
Code|155
Finder|125
Alfred|67
System Settings|59
Activity Monitor|45
Orion|43
CleanShot X|42
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
app_name,
COUNT(*) as rows,
AVG(LENGTH(text)) as avg_text_len,
SUM(LENGTH(text))/1024/1024 as total_mb
FROM ocr_text
JOIN frames ON ocr_text.frame_id = frames.id
GROUP BY app_name
ORDER BY total_mb DESC
LIMIT 15;"
Error: in prepare, ambiguous column name: app_name
SELECT app_name, COUNT(*) as rows, AVG(LENGTH(text)) as avg_text_len,
^--- error here
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
f.app_name,
COUNT(*) as rows,
AVG(LENGTH(o.text)) as avg_text_len,
SUM(LENGTH(o.text))/1024/1024 as total_mb
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
GROUP BY f.app_name
ORDER BY total_mb DESC
LIMIT 15;"
|6206|2989.91637125363|17
Boosteroid|3593|1169.43362092959|4
Slack|387|3164.1834625323|1
PhpStorm|299|3867.36454849498|1
Firefox|366|3405.68852459016|1
iTerm2|10|2601.1|0
UserNotificationCenter|1|664.0|0
Tailscale|2|3256.5|0
Raycast|2|1539.5|0
QuickTime Player|15|3574.33333333333|0
Preview|1|2829.0|0
Finder|38|2407.44736842105|0
Dia|63|2062.65079365079|0
CoreServicesUIAgent|1|1962.0|0
Control Centre|12|4385.83333333333|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.6G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.3G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-13 /Volumes/Test/screenpipe/data/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-14 /Volumes/Test/screenpipe/data/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
7.0M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
60K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
pgsize * pageno / 1024 / 1024 as size_mb
FROM dbstat
WHERE aggregate = TRUE
ORDER BY pgsize * pageno DESC;"
ocr_text|64681806
frames|47636741
elements|9058218
frames_fts_content|2282176
idx_elements_frame_source_role|270725
idx_elements_source_role_text|264067
elements_fts_data|166311
frames_fts_data|156816
idx_elements_frame_source|136761
idx_elements_source|86289
idx_elements_frame_id|55048
elements_fts_docsize|50120
idx_elements_parent_id|39775
ui_events|4996
idx_ui_events_session_id|438
idx_ui_events_timestamp|353
idx_frames_timestamp_device|315
idx_frames_timestamp|197
ui_events_fts_data|159
idx_ui_events_event_type|35
idx_ui_events_app_name|33
ui_events_fts_docsize|26
frames_fts_docsize|19
idx_ui_events_frame_id|14
idx_ui_events_sync_id|14
idx_ui_events_synced_at|14
idx_ui_events_unsynced|14
idx_frames_video_chunk_id|12
idx_ocr_text_frame_app_window|10
idx_ocr_text_length|7
idx_ocr_text_frame_id|7
idx_frames_elements_ref_frame_id|3
frames_fts_idx|2
elements_fts_idx|1
video_chunks|0
sqlite_schema|0
idx_frames_snapshot_path|0
_sqlx_migrations|0
audio_chunks|0
speakers|0
speaker_embeddings|0
idx_video_chunks_device_name_id|0
idx_video_chunks_device_name|0
sqlite_autoindex__sqlx_migrations_1|0
sqlite_sequence|0
idx_audio_chunks_timestamp|0
tags|0
sqlite_autoindex_tags_1|0
vision_tags|0
sqlite_autoindex_vision_tags_1|0
audio_tags|0
sqlite_autoindex_audio_tags_1|0
idx_vision_tags_vision_id|0
idx_vision_tags_tag_id|0
idx_audio_tags_audio_chunk_id|0
idx_audio_tags_tag_id|0
audio_transcriptions|0
idx_audio_transcriptions_audio_chunk_id_timestamp|0
idx_audio_transcriptions_audio_chunk_id|0
idx_audio_transcriptions_timestamp|0
idx_audio_transcriptions_transcription|0
idx_audio_transcriptions_length|0
ui_events_fts_idx|0
ui_events_fts_config|0
idx_audio_transcription_chunk_text|0
pipe_executions|0
idx_pipe_exec_name_status|0
idx_pipe_exec_running|0
idx_pipe_exec_name_time|0
pipe_scheduler_state|0
sqlite_autoindex_pipe_scheduler_state_1|0
meetings|0
idx_meetings_start|0
idx_meetings_end|0
elements_fts_config|0
audio_transcriptions_fts_data|0
audio_transcriptions_fts_idx|0
audio_transcriptions_fts_docsize|0
audio_transcriptions_fts_config|0
idx_video_chunks_cloud_blob_id|0
idx_frames_cloud_blob_id|0
memories|0
idx_memories_created_at|0
idx_memories_importance|0
idx_memories_source|0
memories_fts_data|0
memories_fts_idx|0
memories_fts_docsize|0
memories_fts_config|0
frames_fts_config|0
idx_memories_frame_id|0
idx_frames_sync_id|0
idx_ocr_text_sync_id|0
idx_audio_transcriptions_sync_id|0
secrets|0
sqlite_autoindex_secrets_1|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
(SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=m.name) as exists
FROM sqlite_master
WHERE type='table'
ORDER BY name;"
Error: in prepare, near "exists": syntax error
ite_master WHERE type='table' AND name=m.name) as exists FROM sqlite_master W
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'video_chunks' as tbl, COUNT(*) as rows FROM video_chunks
UNION ALL SELECT 'audio_chunks', COUNT(*) FROM audio_chunks
UNION ALL SELECT 'frames', COUNT(*) FROM frames
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'audio_transcriptions', COUNT(*) FROM audio_transcriptions
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'memories', COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'pipe_executions', COUNT(*) FROM pipe_executions;"
video_chunks|428
audio_chunks|90
frames|20163
ocr_text|15011
audio_transcriptions|3
elements|1222571
memories|0
meetings|0
ui_events|26965
pipe_executions|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
17M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
64K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
SUM(pgsize) / 1024 / 1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY SUM(pgsize) DESC;
"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-93-249:~ (-zsh)
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Unable to access screenpipe activity data (claude)
Close Tab
-zsh
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n1.6G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe\n1.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n648M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.1G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Size of the DB itself\nls -lh ~/.screenpipe/db.sqlite\n\n# Size of actual data files (videos/images)\ndu -sh ~/.screenpipe/data/\n\n# Day by day breakdown\ndu -sh ~/.screenpipe/data/2026-04-*/\n\n# Compare DB vs total\ndu -sh ~/.screenpipe/\nzsh: command not found: #\n-rw-r--r-- 1 lukas staff 1.1G 14 Apr 16:12 /Users/lukas/.screenpipe/db.sqlite\nzsh: unknown file attribute: v\n651M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data/\nzsh: command not found: #\nzsh: no matches found: /Users/lukas/.screenpipe/data/2026-04-*/\nzsh: command not found: #\n1.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # See how the DB space is distributed\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name,\n SUM(pgsize)/1024/1024 as size_mb\nFROM dbstat\nGROUP BY name\nORDER BY size_mb DESC\nLIMIT 20;\"\nzsh: command not found: #\n^[[A^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \" \nSELECT name,\n SUM(pgsize)/1024/1024 as size_mb\nFROM dbstat\nGROUP BY name\nORDER BY size_mb DESC\nLIMIT 20;\"\nframes|358\nocr_text|347\nelements|146\nframes_fts_content|76\nidx_elements_source_role_text|23\nidx_elements_frame_source_role|23\nframes_fts_data|19\nelements_fts_data|19\nidx_elements_frame_source|16\nidx_elements_source|13\nidx_elements_frame_id|10\nelements_fts_docsize|9\nidx_elements_parent_id|8\nui_events|3\nidx_ui_events_session_id|1\nvision_tags|0\nvideo_chunks|0\nui_events_fts_idx|0\nui_events_fts_docsize|0\nui_events_fts_data|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n (SELECT COUNT(*) FROM frames) as frames,\n (SELECT COUNT(*) FROM ocr_text) as ocr_rows,\n (SELECT COUNT(*) FROM ui_monitoring) as ui_rows;\"\nError: in prepare, no such table: ui_monitoring\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT MIN(timestamp) FROM frames;\"\n2026-04-09T16:53:09.043761+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/* \n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n691M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.1G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n9.0M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n1.8G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe\n1.9G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames\nFROM frames\nGROUP BY app_name\nORDER BY frames DESC\nLIMIT 15;\"\n|6198\nBoosteroid|3593\nFirefox|2008\niTerm2|1197\nPhpStorm|974\nSlack|387\nClaude|322\nDia|171\nCode|155\nFinder|125\nAlfred|67\nSystem Settings|59\nActivity Monitor|45\nOrion|43\nCleanShot X|42\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n app_name,\n COUNT(*) as rows,\n AVG(LENGTH(text)) as avg_text_len,\n SUM(LENGTH(text))/1024/1024 as total_mb\nFROM ocr_text\nJOIN frames ON ocr_text.frame_id = frames.id\nGROUP BY app_name\nORDER BY total_mb DESC\nLIMIT 15;\"\nError: in prepare, ambiguous column name: app_name\n SELECT app_name, COUNT(*) as rows, AVG(LENGTH(text)) as avg_text_len, \n ^--- error here\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n f.app_name,\n COUNT(*) as rows,\n AVG(LENGTH(o.text)) as avg_text_len,\n SUM(LENGTH(o.text))/1024/1024 as total_mb\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nGROUP BY f.app_name\nORDER BY total_mb DESC\nLIMIT 15;\"\n|6206|2989.91637125363|17\nBoosteroid|3593|1169.43362092959|4\nSlack|387|3164.1834625323|1\nPhpStorm|299|3867.36454849498|1\nFirefox|366|3405.68852459016|1\niTerm2|10|2601.1|0\nUserNotificationCenter|1|664.0|0\nTailscale|2|3256.5|0\nRaycast|2|1539.5|0\nQuickTime Player|15|3574.33333333333|0\nPreview|1|2829.0|0\nFinder|38|2407.44736842105|0\nDia|63|2062.65079365079|0\nCoreServicesUIAgent|1|1962.0|0\nControl Centre|12|4385.83333333333|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n2.6G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n196K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-13 /Volumes/Test/screenpipe/data/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-14 /Volumes/Test/screenpipe/data/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.4G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n7.0M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n160K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\n 60K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \" \nSELECT \n name,\n pgsize * pageno / 1024 / 1024 as size_mb\nFROM dbstat\nWHERE aggregate = TRUE\nORDER BY pgsize * pageno DESC;\"\nocr_text|64681806\nframes|47636741\nelements|9058218\nframes_fts_content|2282176\nidx_elements_frame_source_role|270725\nidx_elements_source_role_text|264067\nelements_fts_data|166311\nframes_fts_data|156816\nidx_elements_frame_source|136761\nidx_elements_source|86289\nidx_elements_frame_id|55048\nelements_fts_docsize|50120\nidx_elements_parent_id|39775\nui_events|4996\nidx_ui_events_session_id|438\nidx_ui_events_timestamp|353\nidx_frames_timestamp_device|315\nidx_frames_timestamp|197\nui_events_fts_data|159\nidx_ui_events_event_type|35\nidx_ui_events_app_name|33\nui_events_fts_docsize|26\nframes_fts_docsize|19\nidx_ui_events_frame_id|14\nidx_ui_events_sync_id|14\nidx_ui_events_synced_at|14\nidx_ui_events_unsynced|14\nidx_frames_video_chunk_id|12\nidx_ocr_text_frame_app_window|10\nidx_ocr_text_length|7\nidx_ocr_text_frame_id|7\nidx_frames_elements_ref_frame_id|3\nframes_fts_idx|2\nelements_fts_idx|1\nvideo_chunks|0\nsqlite_schema|0\nidx_frames_snapshot_path|0\n_sqlx_migrations|0\naudio_chunks|0\nspeakers|0\nspeaker_embeddings|0\nidx_video_chunks_device_name_id|0\nidx_video_chunks_device_name|0\nsqlite_autoindex__sqlx_migrations_1|0\nsqlite_sequence|0\nidx_audio_chunks_timestamp|0\ntags|0\nsqlite_autoindex_tags_1|0\nvision_tags|0\nsqlite_autoindex_vision_tags_1|0\naudio_tags|0\nsqlite_autoindex_audio_tags_1|0\nidx_vision_tags_vision_id|0\nidx_vision_tags_tag_id|0\nidx_audio_tags_audio_chunk_id|0\nidx_audio_tags_tag_id|0\naudio_transcriptions|0\nidx_audio_transcriptions_audio_chunk_id_timestamp|0\nidx_audio_transcriptions_audio_chunk_id|0\nidx_audio_transcriptions_timestamp|0\nidx_audio_transcriptions_transcription|0\nidx_audio_transcriptions_length|0\nui_events_fts_idx|0\nui_events_fts_config|0\nidx_audio_transcription_chunk_text|0\npipe_executions|0\nidx_pipe_exec_name_status|0\nidx_pipe_exec_running|0\nidx_pipe_exec_name_time|0\npipe_scheduler_state|0\nsqlite_autoindex_pipe_scheduler_state_1|0\nmeetings|0\nidx_meetings_start|0\nidx_meetings_end|0\nelements_fts_config|0\naudio_transcriptions_fts_data|0\naudio_transcriptions_fts_idx|0\naudio_transcriptions_fts_docsize|0\naudio_transcriptions_fts_config|0\nidx_video_chunks_cloud_blob_id|0\nidx_frames_cloud_blob_id|0\nmemories|0\nidx_memories_created_at|0\nidx_memories_importance|0\nidx_memories_source|0\nmemories_fts_data|0\nmemories_fts_idx|0\nmemories_fts_docsize|0\nmemories_fts_config|0\nframes_fts_config|0\nidx_memories_frame_id|0\nidx_frames_sync_id|0\nidx_ocr_text_sync_id|0\nidx_audio_transcriptions_sync_id|0\nsecrets|0\nsqlite_autoindex_secrets_1|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT \n name,\n (SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=m.name) as exists\nFROM sqlite_master\nWHERE type='table'\nORDER BY name;\"\nError: in prepare, near \"exists\": syntax error\n ite_master WHERE type='table' AND name=m.name) as exists FROM sqlite_master W\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT \n 'video_chunks' as tbl, COUNT(*) as rows FROM video_chunks\nUNION ALL SELECT 'audio_chunks', COUNT(*) FROM audio_chunks\nUNION ALL SELECT 'frames', COUNT(*) FROM frames\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'audio_transcriptions', COUNT(*) FROM audio_transcriptions\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'memories', COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'pipe_executions', COUNT(*) FROM pipe_executions;\"\nvideo_chunks|428\naudio_chunks|90\nframes|20163\nocr_text|15011\naudio_transcriptions|3\nelements|1222571\nmemories|0\nmeetings|0\nui_events|26965\npipe_executions|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.4G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 17M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n160K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT \n name, \n SUM(pgsize) / 1024 / 1024 as size_mb\nFROM dbstat\nGROUP BY name\nORDER BY SUM(pgsize) DESC;\n\"","depth":4,"value":"64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n1.6G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe\n1.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n648M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.1G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Size of the DB itself\nls -lh ~/.screenpipe/db.sqlite\n\n# Size of actual data files (videos/images)\ndu -sh ~/.screenpipe/data/\n\n# Day by day breakdown\ndu -sh ~/.screenpipe/data/2026-04-*/\n\n# Compare DB vs total\ndu -sh ~/.screenpipe/\nzsh: command not found: #\n-rw-r--r-- 1 lukas staff 1.1G 14 Apr 16:12 /Users/lukas/.screenpipe/db.sqlite\nzsh: unknown file attribute: v\n651M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data/\nzsh: command not found: #\nzsh: no matches found: /Users/lukas/.screenpipe/data/2026-04-*/\nzsh: command not found: #\n1.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # See how the DB space is distributed\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name,\n SUM(pgsize)/1024/1024 as size_mb\nFROM dbstat\nGROUP BY name\nORDER BY size_mb DESC\nLIMIT 20;\"\nzsh: command not found: #\n^[[A^CError: stepping, interrupted (9)\nProgram interrupted.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \" \nSELECT name,\n SUM(pgsize)/1024/1024 as size_mb\nFROM dbstat\nGROUP BY name\nORDER BY size_mb DESC\nLIMIT 20;\"\nframes|358\nocr_text|347\nelements|146\nframes_fts_content|76\nidx_elements_source_role_text|23\nidx_elements_frame_source_role|23\nframes_fts_data|19\nelements_fts_data|19\nidx_elements_frame_source|16\nidx_elements_source|13\nidx_elements_frame_id|10\nelements_fts_docsize|9\nidx_elements_parent_id|8\nui_events|3\nidx_ui_events_session_id|1\nvision_tags|0\nvideo_chunks|0\nui_events_fts_idx|0\nui_events_fts_docsize|0\nui_events_fts_data|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n (SELECT COUNT(*) FROM frames) as frames,\n (SELECT COUNT(*) FROM ocr_text) as ocr_rows,\n (SELECT COUNT(*) FROM ui_monitoring) as ui_rows;\"\nError: in prepare, no such table: ui_monitoring\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT MIN(timestamp) FROM frames;\"\n2026-04-09T16:53:09.043761+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/* \n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n691M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.1G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n9.0M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n1.8G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe\n1.9G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames\nFROM frames\nGROUP BY app_name\nORDER BY frames DESC\nLIMIT 15;\"\n|6198\nBoosteroid|3593\nFirefox|2008\niTerm2|1197\nPhpStorm|974\nSlack|387\nClaude|322\nDia|171\nCode|155\nFinder|125\nAlfred|67\nSystem Settings|59\nActivity Monitor|45\nOrion|43\nCleanShot X|42\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n app_name,\n COUNT(*) as rows,\n AVG(LENGTH(text)) as avg_text_len,\n SUM(LENGTH(text))/1024/1024 as total_mb\nFROM ocr_text\nJOIN frames ON ocr_text.frame_id = frames.id\nGROUP BY app_name\nORDER BY total_mb DESC\nLIMIT 15;\"\nError: in prepare, ambiguous column name: app_name\n SELECT app_name, COUNT(*) as rows, AVG(LENGTH(text)) as avg_text_len, \n ^--- error here\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n f.app_name,\n COUNT(*) as rows,\n AVG(LENGTH(o.text)) as avg_text_len,\n SUM(LENGTH(o.text))/1024/1024 as total_mb\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nGROUP BY f.app_name\nORDER BY total_mb DESC\nLIMIT 15;\"\n|6206|2989.91637125363|17\nBoosteroid|3593|1169.43362092959|4\nSlack|387|3164.1834625323|1\nPhpStorm|299|3867.36454849498|1\nFirefox|366|3405.68852459016|1\niTerm2|10|2601.1|0\nUserNotificationCenter|1|664.0|0\nTailscale|2|3256.5|0\nRaycast|2|1539.5|0\nQuickTime Player|15|3574.33333333333|0\nPreview|1|2829.0|0\nFinder|38|2407.44736842105|0\nDia|63|2062.65079365079|0\nCoreServicesUIAgent|1|1962.0|0\nControl Centre|12|4385.83333333333|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n2.6G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n196K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-13 /Volumes/Test/screenpipe/data/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-14 /Volumes/Test/screenpipe/data/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.4G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n7.0M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n160K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\n 60K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \" \nSELECT \n name,\n pgsize * pageno / 1024 / 1024 as size_mb\nFROM dbstat\nWHERE aggregate = TRUE\nORDER BY pgsize * pageno DESC;\"\nocr_text|64681806\nframes|47636741\nelements|9058218\nframes_fts_content|2282176\nidx_elements_frame_source_role|270725\nidx_elements_source_role_text|264067\nelements_fts_data|166311\nframes_fts_data|156816\nidx_elements_frame_source|136761\nidx_elements_source|86289\nidx_elements_frame_id|55048\nelements_fts_docsize|50120\nidx_elements_parent_id|39775\nui_events|4996\nidx_ui_events_session_id|438\nidx_ui_events_timestamp|353\nidx_frames_timestamp_device|315\nidx_frames_timestamp|197\nui_events_fts_data|159\nidx_ui_events_event_type|35\nidx_ui_events_app_name|33\nui_events_fts_docsize|26\nframes_fts_docsize|19\nidx_ui_events_frame_id|14\nidx_ui_events_sync_id|14\nidx_ui_events_synced_at|14\nidx_ui_events_unsynced|14\nidx_frames_video_chunk_id|12\nidx_ocr_text_frame_app_window|10\nidx_ocr_text_length|7\nidx_ocr_text_frame_id|7\nidx_frames_elements_ref_frame_id|3\nframes_fts_idx|2\nelements_fts_idx|1\nvideo_chunks|0\nsqlite_schema|0\nidx_frames_snapshot_path|0\n_sqlx_migrations|0\naudio_chunks|0\nspeakers|0\nspeaker_embeddings|0\nidx_video_chunks_device_name_id|0\nidx_video_chunks_device_name|0\nsqlite_autoindex__sqlx_migrations_1|0\nsqlite_sequence|0\nidx_audio_chunks_timestamp|0\ntags|0\nsqlite_autoindex_tags_1|0\nvision_tags|0\nsqlite_autoindex_vision_tags_1|0\naudio_tags|0\nsqlite_autoindex_audio_tags_1|0\nidx_vision_tags_vision_id|0\nidx_vision_tags_tag_id|0\nidx_audio_tags_audio_chunk_id|0\nidx_audio_tags_tag_id|0\naudio_transcriptions|0\nidx_audio_transcriptions_audio_chunk_id_timestamp|0\nidx_audio_transcriptions_audio_chunk_id|0\nidx_audio_transcriptions_timestamp|0\nidx_audio_transcriptions_transcription|0\nidx_audio_transcriptions_length|0\nui_events_fts_idx|0\nui_events_fts_config|0\nidx_audio_transcription_chunk_text|0\npipe_executions|0\nidx_pipe_exec_name_status|0\nidx_pipe_exec_running|0\nidx_pipe_exec_name_time|0\npipe_scheduler_state|0\nsqlite_autoindex_pipe_scheduler_state_1|0\nmeetings|0\nidx_meetings_start|0\nidx_meetings_end|0\nelements_fts_config|0\naudio_transcriptions_fts_data|0\naudio_transcriptions_fts_idx|0\naudio_transcriptions_fts_docsize|0\naudio_transcriptions_fts_config|0\nidx_video_chunks_cloud_blob_id|0\nidx_frames_cloud_blob_id|0\nmemories|0\nidx_memories_created_at|0\nidx_memories_importance|0\nidx_memories_source|0\nmemories_fts_data|0\nmemories_fts_idx|0\nmemories_fts_docsize|0\nmemories_fts_config|0\nframes_fts_config|0\nidx_memories_frame_id|0\nidx_frames_sync_id|0\nidx_ocr_text_sync_id|0\nidx_audio_transcriptions_sync_id|0\nsecrets|0\nsqlite_autoindex_secrets_1|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT \n name,\n (SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=m.name) as exists\nFROM sqlite_master\nWHERE type='table'\nORDER BY name;\"\nError: in prepare, near \"exists\": syntax error\n ite_master WHERE type='table' AND name=m.name) as exists FROM sqlite_master W\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT \n 'video_chunks' as tbl, COUNT(*) as rows FROM video_chunks\nUNION ALL SELECT 'audio_chunks', COUNT(*) FROM audio_chunks\nUNION ALL SELECT 'frames', COUNT(*) FROM frames\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'audio_transcriptions', COUNT(*) FROM audio_transcriptions\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'memories', COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'pipe_executions', COUNT(*) FROM pipe_executions;\"\nvideo_chunks|428\naudio_chunks|90\nframes|20163\nocr_text|15011\naudio_transcriptions|3\nelements|1222571\nmemories|0\nmeetings|0\nui_events|26965\npipe_executions|0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n1.3G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n1.4G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 17M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 24K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n160K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT \n name, \n SUM(pgsize) / 1024 / 1024 as size_mb\nFROM dbstat\nGROUP BY name\nORDER BY SUM(pgsize) DESC;\n\"","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.061523438,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.29472655,"top":1.0,"width":0.061523438,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.29707032,"top":1.0,"width":0.00625,"height":-0.039583325},"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.35625,"top":1.0,"width":0.061523438,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35859376,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-93-249:~ (-zsh)","depth":2,"bounds":{"left":0.41777343,"top":1.0,"width":0.061523438,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4201172,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.47929686,"top":1.0,"width":0.061523438,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.48164064,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.5408203,"top":1.0,"width":0.061523438,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5431641,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.60234374,"top":1.0,"width":0.061328124,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6046875,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Unable to access screenpipe activity data (claude)","depth":2,"bounds":{"left":0.66367185,"top":1.0,"width":0.061328124,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6660156,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.725,"top":1.0,"width":0.061328124,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.72734374,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-3859855936387349363
|
-2285086621501169103
|
idle
|
accessibility
|
NULL
|
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M 64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.6G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
648M /Users/lukas/.screenpipe/data
1.1G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Size of the DB itself
ls -lh ~/.screenpipe/db.sqlite
# Size of actual data files (videos/images)
du -sh ~/.screenpipe/data/
# Day by day breakdown
du -sh ~/.screenpipe/data/2026-04-*/
# Compare DB vs total
du -sh ~/.screenpipe/
zsh: command not found: #
-rw-r--r-- 1 lukas staff 1.1G 14 Apr 16:12 /Users/lukas/.screenpipe/db.sqlite
zsh: unknown file attribute: v
651M /Users/lukas/.screenpipe/data/
zsh: command not found: #
zsh: no matches found: /Users/lukas/.screenpipe/data/2026-04-*/
zsh: command not found: #
1.7G /Users/lukas/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # See how the DB space is distributed
sqlite3 ~/.screenpipe/db.sqlite "
SELECT name,
SUM(pgsize)/1024/1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY size_mb DESC
LIMIT 20;"
zsh: command not found: #
^[[A^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name,
SUM(pgsize)/1024/1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY size_mb DESC
LIMIT 20;"
frames|358
ocr_text|347
elements|146
frames_fts_content|76
idx_elements_source_role_text|23
idx_elements_frame_source_role|23
frames_fts_data|19
elements_fts_data|19
idx_elements_frame_source|16
idx_elements_source|13
idx_elements_frame_id|10
elements_fts_docsize|9
idx_elements_parent_id|8
ui_events|3
idx_ui_events_session_id|1
vision_tags|0
video_chunks|0
ui_events_fts_idx|0
ui_events_fts_docsize|0
ui_events_fts_data|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
(SELECT COUNT(*) FROM frames) as frames,
(SELECT COUNT(*) FROM ocr_text) as ocr_rows,
(SELECT COUNT(*) FROM ui_monitoring) as ui_rows;"
Error: in prepare, no such table: ui_monitoring
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT MIN(timestamp) FROM frames;"
2026-04-09T16:53:09.043761+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
691M /Users/lukas/.screenpipe/data
1.1G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
9.0M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.8G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.9G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames
FROM frames
GROUP BY app_name
ORDER BY frames DESC
LIMIT 15;"
|6198
Boosteroid|3593
Firefox|2008
iTerm2|1197
PhpStorm|974
Slack|387
Claude|322
Dia|171
Code|155
Finder|125
Alfred|67
System Settings|59
Activity Monitor|45
Orion|43
CleanShot X|42
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
app_name,
COUNT(*) as rows,
AVG(LENGTH(text)) as avg_text_len,
SUM(LENGTH(text))/1024/1024 as total_mb
FROM ocr_text
JOIN frames ON ocr_text.frame_id = frames.id
GROUP BY app_name
ORDER BY total_mb DESC
LIMIT 15;"
Error: in prepare, ambiguous column name: app_name
SELECT app_name, COUNT(*) as rows, AVG(LENGTH(text)) as avg_text_len,
^--- error here
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
f.app_name,
COUNT(*) as rows,
AVG(LENGTH(o.text)) as avg_text_len,
SUM(LENGTH(o.text))/1024/1024 as total_mb
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
GROUP BY f.app_name
ORDER BY total_mb DESC
LIMIT 15;"
|6206|2989.91637125363|17
Boosteroid|3593|1169.43362092959|4
Slack|387|3164.1834625323|1
PhpStorm|299|3867.36454849498|1
Firefox|366|3405.68852459016|1
iTerm2|10|2601.1|0
UserNotificationCenter|1|664.0|0
Tailscale|2|3256.5|0
Raycast|2|1539.5|0
QuickTime Player|15|3574.33333333333|0
Preview|1|2829.0|0
Finder|38|2407.44736842105|0
Dia|63|2062.65079365079|0
CoreServicesUIAgent|1|1962.0|0
Control Centre|12|4385.83333333333|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.6G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.3G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-13 /Volumes/Test/screenpipe/data/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-14 /Volumes/Test/screenpipe/data/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
7.0M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
60K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
pgsize * pageno / 1024 / 1024 as size_mb
FROM dbstat
WHERE aggregate = TRUE
ORDER BY pgsize * pageno DESC;"
ocr_text|64681806
frames|47636741
elements|9058218
frames_fts_content|2282176
idx_elements_frame_source_role|270725
idx_elements_source_role_text|264067
elements_fts_data|166311
frames_fts_data|156816
idx_elements_frame_source|136761
idx_elements_source|86289
idx_elements_frame_id|55048
elements_fts_docsize|50120
idx_elements_parent_id|39775
ui_events|4996
idx_ui_events_session_id|438
idx_ui_events_timestamp|353
idx_frames_timestamp_device|315
idx_frames_timestamp|197
ui_events_fts_data|159
idx_ui_events_event_type|35
idx_ui_events_app_name|33
ui_events_fts_docsize|26
frames_fts_docsize|19
idx_ui_events_frame_id|14
idx_ui_events_sync_id|14
idx_ui_events_synced_at|14
idx_ui_events_unsynced|14
idx_frames_video_chunk_id|12
idx_ocr_text_frame_app_window|10
idx_ocr_text_length|7
idx_ocr_text_frame_id|7
idx_frames_elements_ref_frame_id|3
frames_fts_idx|2
elements_fts_idx|1
video_chunks|0
sqlite_schema|0
idx_frames_snapshot_path|0
_sqlx_migrations|0
audio_chunks|0
speakers|0
speaker_embeddings|0
idx_video_chunks_device_name_id|0
idx_video_chunks_device_name|0
sqlite_autoindex__sqlx_migrations_1|0
sqlite_sequence|0
idx_audio_chunks_timestamp|0
tags|0
sqlite_autoindex_tags_1|0
vision_tags|0
sqlite_autoindex_vision_tags_1|0
audio_tags|0
sqlite_autoindex_audio_tags_1|0
idx_vision_tags_vision_id|0
idx_vision_tags_tag_id|0
idx_audio_tags_audio_chunk_id|0
idx_audio_tags_tag_id|0
audio_transcriptions|0
idx_audio_transcriptions_audio_chunk_id_timestamp|0
idx_audio_transcriptions_audio_chunk_id|0
idx_audio_transcriptions_timestamp|0
idx_audio_transcriptions_transcription|0
idx_audio_transcriptions_length|0
ui_events_fts_idx|0
ui_events_fts_config|0
idx_audio_transcription_chunk_text|0
pipe_executions|0
idx_pipe_exec_name_status|0
idx_pipe_exec_running|0
idx_pipe_exec_name_time|0
pipe_scheduler_state|0
sqlite_autoindex_pipe_scheduler_state_1|0
meetings|0
idx_meetings_start|0
idx_meetings_end|0
elements_fts_config|0
audio_transcriptions_fts_data|0
audio_transcriptions_fts_idx|0
audio_transcriptions_fts_docsize|0
audio_transcriptions_fts_config|0
idx_video_chunks_cloud_blob_id|0
idx_frames_cloud_blob_id|0
memories|0
idx_memories_created_at|0
idx_memories_importance|0
idx_memories_source|0
memories_fts_data|0
memories_fts_idx|0
memories_fts_docsize|0
memories_fts_config|0
frames_fts_config|0
idx_memories_frame_id|0
idx_frames_sync_id|0
idx_ocr_text_sync_id|0
idx_audio_transcriptions_sync_id|0
secrets|0
sqlite_autoindex_secrets_1|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
(SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=m.name) as exists
FROM sqlite_master
WHERE type='table'
ORDER BY name;"
Error: in prepare, near "exists": syntax error
ite_master WHERE type='table' AND name=m.name) as exists FROM sqlite_master W
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'video_chunks' as tbl, COUNT(*) as rows FROM video_chunks
UNION ALL SELECT 'audio_chunks', COUNT(*) FROM audio_chunks
UNION ALL SELECT 'frames', COUNT(*) FROM frames
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'audio_transcriptions', COUNT(*) FROM audio_transcriptions
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'memories', COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'pipe_executions', COUNT(*) FROM pipe_executions;"
video_chunks|428
audio_chunks|90
frames|20163
ocr_text|15011
audio_transcriptions|3
elements|1222571
memories|0
meetings|0
ui_events|26965
pipe_executions|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
17M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
64K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
SUM(pgsize) / 1024 / 1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY SUM(pgsize) DESC;
"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-93-249:~ (-zsh)
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Unable to access screenpipe activity data (claude)
Close Tab
-zsh
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
39448
|
800
|
17
|
2026-04-16T13:40:37.510207+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776346837510_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Thu Apr 16 15:48:11 on ttys009
Poetry Last login: Thu Apr 16 15:48:11 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;"
Error: in prepare, no such column: timestamp
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite ".schema ocr_text"
CREATE TABLE IF NOT EXISTS "ocr_text" (
frame_id INTEGER NOT NULL,
text TEXT NOT NULL,
text_json TEXT,
app_name TEXT NOT NULL DEFAULT '',
ocr_engine TEXT NOT NULL DEFAULT 'unknown'
, window_name TEXT, focused BOOLEAN DEFAULT FALSE, text_length INTEGER, sync_id TEXT, synced_at DATETIME);
CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name);
CREATE INDEX idx_ocr_text_length ON ocr_text (text_length);
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name FROM ocr_text LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status
zsh: command not found: st-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status
zsh: command not found: st-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-16T16:37:14+03:00",
"uptime": 2866.983892584,
"fps": 0.[CREDIT_CARD],
"frames": 1762
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-16T16:37:44+03:00",
"uptime": 2894.494524792,
"fps": 0.612196701297038,
"frames": 1772
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name FROM ocr_text LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ pgrep -la screenpipe
10874 screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite
# Check if there are other DB files
find ~ -name "db.sqlite" 2>/dev/null
-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:36 /Users/lukas/.screenpipe/db.sqlite
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
^C
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite
-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:38 /Users/lukas/.screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ find ~ -name "db.sqlite" 2>/dev/null
/Users/lukas/.screenpipe/db.sqlite
^C
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/db.sqlite
2.6G /Users/lukas/.screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames;"
39430
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM ocr_text;"
31879
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT name FROM sqlite_master WHERE type='table';" | while read t; do echo -n "$t: "; sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;"; done
_sqlx_migrations: 74
video_chunks: 795
sqlite_sequence: 9
audio_chunks: 90
ocr_text: 31881
tags: 0
vision_tags: 0
audio_tags: 0
speakers: 3
speaker_embeddings: 3
audio_transcriptions: 3
ui_events: 47933
ui_events_fts: 47933
ui_events_fts_data: 446
ui_events_fts_idx: 136
ui_events_fts_docsize: 47933
ui_events_fts_config: 1
pipe_executions: 0
pipe_scheduler_state: 0
frames: 39447
meetings: 2
elements: 2543482
elements_fts:
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Thu Apr 16 15:48:11 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\"\nError: in prepare, no such column: created_at\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\"\nError: in prepare, no such column: created_at\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\"\nError: in prepare, no such column: created_at\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;\"\nError: in prepare, no such column: timestamp\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \".schema ocr_text\"\nCREATE TABLE IF NOT EXISTS \"ocr_text\" (\n frame_id INTEGER NOT NULL,\n text TEXT NOT NULL,\n text_json TEXT,\n app_name TEXT NOT NULL DEFAULT '',\n ocr_engine TEXT NOT NULL DEFAULT 'unknown'\n, window_name TEXT, focused BOOLEAN DEFAULT FALSE, text_length INTEGER, sync_id TEXT, synced_at DATETIME);\nCREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name);\nCREATE INDEX idx_ocr_text_length ON ocr_text (text_length);\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name FROM ocr_text LIMIT 50;\"\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status\nzsh: command not found: st-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status\nzsh: command not found: st-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\n{\n \"status\": \"healthy\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"disabled\",\n \"last_frame\": \"2026-04-16T16:37:14+03:00\",\n \"uptime\": 2866.983892584,\n \"fps\": 0.6145831528937951,\n \"frames\": 1762\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\n{\n \"status\": \"healthy\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"disabled\",\n \"last_frame\": \"2026-04-16T16:37:44+03:00\",\n \"uptime\": 2894.494524792,\n \"fps\": 0.612196701297038,\n \"frames\": 1772\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name FROM ocr_text LIMIT 50;\"\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ pgrep -la screenpipe\n10874 screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite\n# Check if there are other DB files\nfind ~ -name \"db.sqlite\" 2>/dev/null\n-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:36 /Users/lukas/.screenpipe/db.sqlite\nzsh: command not found: #\n/Users/lukas/.screenpipe/db.sqlite\n^C\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite\n\n-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:38 /Users/lukas/.screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ find ~ -name \"db.sqlite\" 2>/dev/null\n/Users/lukas/.screenpipe/db.sqlite\n^C\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/db.sqlite\n2.6G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames;\"\n39430\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM ocr_text;\"\n31879\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT name FROM sqlite_master WHERE type='table';\" | while read t; do echo -n \"$t: \"; sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM $t;\"; done\n_sqlx_migrations: 74\nvideo_chunks: 795\nsqlite_sequence: 9\naudio_chunks: 90\nocr_text: 31881\ntags: 0\nvision_tags: 0\naudio_tags: 0\nspeakers: 3\nspeaker_embeddings: 3\naudio_transcriptions: 3\nui_events: 47933\nui_events_fts: 47933\nui_events_fts_data: 446\nui_events_fts_idx: 136\nui_events_fts_docsize: 47933\nui_events_fts_config: 1\npipe_executions: 0\npipe_scheduler_state: 0\nframes: 39447\nmeetings: 2\nelements: 2543482\nelements_fts:","depth":4,"value":"Last login: Thu Apr 16 15:48:11 on ttys009\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\"\nError: in prepare, no such column: created_at\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\"\nError: in prepare, no such column: created_at\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\"\nError: in prepare, no such column: created_at\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;\"\nError: in prepare, no such column: timestamp\n ari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;\n error here ---^\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \".schema ocr_text\"\nCREATE TABLE IF NOT EXISTS \"ocr_text\" (\n frame_id INTEGER NOT NULL,\n text TEXT NOT NULL,\n text_json TEXT,\n app_name TEXT NOT NULL DEFAULT '',\n ocr_engine TEXT NOT NULL DEFAULT 'unknown'\n, window_name TEXT, focused BOOLEAN DEFAULT FALSE, text_length INTEGER, sync_id TEXT, synced_at DATETIME);\nCREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id);\nCREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name);\nCREATE INDEX idx_ocr_text_length ON ocr_text (text_length);\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name FROM ocr_text LIMIT 50;\"\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status\nzsh: command not found: st-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status\nzsh: command not found: st-status\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\n{\n \"status\": \"healthy\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"disabled\",\n \"last_frame\": \"2026-04-16T16:37:14+03:00\",\n \"uptime\": 2866.983892584,\n \"fps\": 0.6145831528937951,\n \"frames\": 1762\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status\n{\n \"status\": \"healthy\",\n \"frame_status\": \"ok\",\n \"audio_status\": \"disabled\",\n \"last_frame\": \"2026-04-16T16:37:44+03:00\",\n \"uptime\": 2894.494524792,\n \"fps\": 0.612196701297038,\n \"frames\": 1772\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name FROM ocr_text LIMIT 50;\"\n\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ pgrep -la screenpipe\n10874 screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite\n# Check if there are other DB files\nfind ~ -name \"db.sqlite\" 2>/dev/null\n-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:36 /Users/lukas/.screenpipe/db.sqlite\nzsh: command not found: #\n/Users/lukas/.screenpipe/db.sqlite\n^C\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite\n\n-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:38 /Users/lukas/.screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ find ~ -name \"db.sqlite\" 2>/dev/null\n/Users/lukas/.screenpipe/db.sqlite\n^C\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/db.sqlite\n2.6G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames;\"\n39430\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM ocr_text;\"\n31879\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT name FROM sqlite_master WHERE type='table';\" | while read t; do echo -n \"$t: \"; sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM $t;\"; done\n_sqlx_migrations: 74\nvideo_chunks: 795\nsqlite_sequence: 9\naudio_chunks: 90\nocr_text: 31881\ntags: 0\nvision_tags: 0\naudio_tags: 0\nspeakers: 3\nspeaker_embeddings: 3\naudio_transcriptions: 3\nui_events: 47933\nui_events_fts: 47933\nui_events_fts_data: 446\nui_events_fts_idx: 136\nui_events_fts_docsize: 47933\nui_events_fts_config: 1\npipe_executions: 0\npipe_scheduler_state: 0\nframes: 39447\nmeetings: 2\nelements: 2543482\nelements_fts:","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.20069444,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.20069444,"top":0.05888889,"width":0.20034721,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2048611,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.40104166,"top":0.05888889,"width":0.20034721,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40520832,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6013889,"top":0.05888889,"width":0.20034721,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60555553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.8017361,"top":0.05888889,"width":0.19826388,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8059028,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9736111,"top":0.032222223,"width":0.026388884,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4923611,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-5215604556962384584
|
-3898525974287957701
|
visual_change
|
accessibility
|
NULL
|
Last login: Thu Apr 16 15:48:11 on ttys009
Poetry Last login: Thu Apr 16 15:48:11 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;"
Error: in prepare, no such column: timestamp
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite ".schema ocr_text"
CREATE TABLE IF NOT EXISTS "ocr_text" (
frame_id INTEGER NOT NULL,
text TEXT NOT NULL,
text_json TEXT,
app_name TEXT NOT NULL DEFAULT '',
ocr_engine TEXT NOT NULL DEFAULT 'unknown'
, window_name TEXT, focused BOOLEAN DEFAULT FALSE, text_length INTEGER, sync_id TEXT, synced_at DATETIME);
CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name);
CREATE INDEX idx_ocr_text_length ON ocr_text (text_length);
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name FROM ocr_text LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status
zsh: command not found: st-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status
zsh: command not found: st-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-16T16:37:14+03:00",
"uptime": 2866.983892584,
"fps": 0.[CREDIT_CARD],
"frames": 1762
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-16T16:37:44+03:00",
"uptime": 2894.494524792,
"fps": 0.612196701297038,
"frames": 1772
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name FROM ocr_text LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ pgrep -la screenpipe
10874 screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite
# Check if there are other DB files
find ~ -name "db.sqlite" 2>/dev/null
-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:36 /Users/lukas/.screenpipe/db.sqlite
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
^C
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite
-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:38 /Users/lukas/.screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ find ~ -name "db.sqlite" 2>/dev/null
/Users/lukas/.screenpipe/db.sqlite
^C
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/db.sqlite
2.6G /Users/lukas/.screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames;"
39430
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM ocr_text;"
31879
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT name FROM sqlite_master WHERE type='table';" | while read t; do echo -n "$t: "; sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;"; done
_sqlx_migrations: 74
video_chunks: 795
sqlite_sequence: 9
audio_chunks: 90
ocr_text: 31881
tags: 0
vision_tags: 0
audio_tags: 0
speakers: 3
speaker_embeddings: 3
audio_transcriptions: 3
ui_events: 47933
ui_events_fts: 47933
ui_events_fts_data: 446
ui_events_fts_idx: 136
ui_events_fts_docsize: 47933
ui_events_fts_config: 1
pipe_executions: 0
pipe_scheduler_state: 0
frames: 39447
meetings: 2
elements: 2543482
elements_fts:
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
39447
|
NULL
|
|
40115
|
NULL
|
0
|
2026-04-16T15:23:04.553178+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776352984553_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screen lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe
lukas 10874 15.7 4.1 412962384 689376 s009 SN 3:49pm 32:48.19 /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio
lukas 18357 0.9 0.0 410733264 1488 s010 S+ 4:53pm 0:00.00 grep screenpipe
lukas 10835 0.0 0.2 411427744 30240 s009 SN 3:49pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --help
increased file descriptor limit from 256 to 8192 (hard limit: 9223372036854775807)
Start recording screen, audio, and serve the API
Usage: screenpipe record [OPTIONS]
Options:
-d, --audio-chunk-duration <AUDIO_CHUNK_DURATION>
Audio chunk duration in seconds
[default: 30]
-p, --port <PORT>
Port to run the server on
[default: 3030]
--disable-audio
Disable audio recording
-i, --audio-device <AUDIO_DEVICE>
Audio devices to use (can be specified multiple times)
--use-system-default-audio
Follow system default audio devices
--data-dir <DATA_DIR>
Data directory. Default to $HOME/.screenpipe
--debug
Enable debug logging for screenpipe modules
-a, --audio-transcription-engine <AUDIO_TRANSCRIPTION_ENGINE>
Audio transcription engine to use
Possible values:
- deepgram
- whisper-tiny
- whisper-tiny-quantized
- whisper-large
- whisper-large-quantized
- whisper-large-v3-turbo
- whisper-large-v3-turbo-quantized
- openai-compatible
- qwen3-asr
- parakeet
- disabled: Disable transcription (audio capture only, no speech-to-text)
[default: parakeet]
-m, --monitor-id <MONITOR_ID>
Monitor IDs to use
--use-all-monitors
Automatically record all monitors
-l, --language <LANGUAGE>
Languages for OCR/transcription
[possible values: english, chinese, german, spanish, russian, korean, french, japanese, portuguese, turkish, polish, catalan, dutch, arabic, swedish, italian, indonesian, hindi, vietnamese, finnish, hebrew, ukrainian, greek, malay, czech, romanian, danish, hungarian, norwegian, thai, urdu, croatian, bulgarian, lithuanian, latin, malayalam, welsh, slovak, persian, latvian, bengali, serbian, azerbaijani, slovenian, estonian, macedonian, nepali, mongolian, bosnian, kazakh, albanian, swahili, galician, marathi, punjabi, sinhala, khmer, afrikaans, belarusian, gujarati, amharic, yiddish, lao, uzbek, faroese, pashto, maltese, sanskrit, luxembourgish, myanmar, tibetan, tagalog, assamese, tatar, hausa, javanese]
--use-pii-removal
Enable PII removal
--filter-music
Filter music-dominant audio before transcription (reduces Spotify/YouTube music noise)
--disable-vision
Disable vision recording
--ignored-windows <IGNORED_WINDOWS>
Windows to ignore (by title, uses contains matching)
--included-windows <INCLUDED_WINDOWS>
Windows to include (by title, uses contains matching)
--ignored-urls <IGNORED_URLS>
URLs to ignore for browser privacy filtering
--deepgram-api-key <DEEPGRAM_API_KEY>
Deepgram API Key for audio transcription
--transcription-mode <TRANSCRIPTION_MODE>
Audio transcription scheduling mode: batch (default, longer chunks for quality) or realtime
Possible values:
- realtime: Transcribe immediately as audio is captured
- batch: Accumulate longer audio batches for better transcription quality (default)
[default: batch]
--disable-telemetry
Disable telemetry
--video-quality <VIDEO_QUALITY>
Video quality preset: low, balanced, high, max
[default: balanced]
--enable-sync
Enable cloud sync
--sync-token <SYNC_TOKEN>
UW PICO 5.09 New Buffer
[ Read 18 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
API token for cloud sync
[env: SCREENPIPE_SYNC_TOKEN=]
--sync-password <SYNC_PASSWORD>
Password for encrypting synced data
[env: SCREENPIPE_SYNC_PASSWORD=[PASSWORD]
--sync-interval-secs <SYNC_INTERVAL_SECS>
Interval between sync cycles in seconds
[default: 300]
--sync-machine-id <SYNC_MACHINE_ID>
Override the machine ID for this device
--pause-on-drm-content
Pause screen and audio capture when DRM content (Netflix, Disney+, etc.) is detected
--api-auth
Require authentication for remote API access. When enabled, non-localhost requests must include Authorization: Bearer <SCREENPIPE_API_KEY>. Localhost requests are always allowed
--encrypt-secrets
Encrypt secrets (API keys, OAuth tokens) at rest using the OS keychain. Creates a keychain key if one doesn't exist. Without this flag, the CLI will use an existing key (created by the desktop app) but won't create one
--retention-days <RETENTION_DAYS>
Local data retention in days. Old screen/audio data is auto-deleted after this period. Set to 0 to disable retention (keep data forever)
[default: 14]
-h, --help
Print help (see a summary with '-h')
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record --disable-audio --ignored-apps "Boosteroid"
error: unexpected argument '--ignored-apps' found
tip: a similar argument exists: '--ignored-urls'
Usage: screenpipe record --disable-audio --ignored-urls <IGNORED_URLS>
For more information, try '--help'.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.screenpipe/config.json
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start
sp-start='npx screenpipe@latest record --disable-audio &'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sql
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias
addssh='ssh-add ~/.ssh/*'
app='cd ~/jiminny/app'
cnt='docker exec -ti $(docker ps | grep worker | awk '\''{print $1}'\'') /bin/bash -c "cd /home/jiminny && bash"'
co='git checkout'
cov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'
csfix='make cs-fix'
dev='docker exec -ti $(docker ps -q --filter "name=docker_lamp_1") /bin/bash'
eu='ssh lukas@jiminny-eu-bastion -D [IP_ADDRESS]:7073 -L 7532:db:3306'
eues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'
ext='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'
fe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'
fe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'
gbr='git branch --sort=-committerdate'
gcb='git branch --show-current | pbcopy'
gs='git status'
hhh=history
hhs='history 0 | grep '
install_nano='apt-get update & apt-get install nano'
kar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'
ll='ls -la --color=tty'
nas='ssh Adm1n@[IP_ADDRESS] -p22'
poetryshell='eval ""'
prod='ssh lukas@jiminny-prod-bastion -D [IP_ADDRESS]:7072 -L 7632:db:3306'
prodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'
prophet='cd ~/jiminny/app'
prophetdown='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down"'
prophetup='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build"'
qa='ssh lukas@jiminny-qa-bastion -D [IP_ADDRESS]:7074 -L 7432:db:3306'
qaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'
qai='ssh lukas@jiminny-qai-bastion -D [IP_ADDRESS]:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'
rmbc='rm -rf bootstrap/cache/*.php'
run-help=man
sp-start='npx screenpipe@latest record --disable-audio &'
sp-status='curl -s [URL_WITH_CREDENTIALS] -D [IP_ADDRESS]:7071 -L 7732:db:3306'
stges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'
veu='ssh jiminny-eu-ecs1'
veu10='ssh jiminny-eu-ecs10'
veu11='ssh jiminny-eu-ecs11'
veu12='ssh jiminny-eu-ecs12'
veu2='ssh jiminny-eu-ecs2'
veu3='ssh jiminny-eu-ecs3'
veu4='ssh jiminny-eu-ecs4'
veu5='ssh jiminny-eu-ecs5'
veu6='ssh jiminny-eu-ecs6'
veu7='ssh jiminny-eu-ecs7'
veu8='ssh jiminny-eu-ecs8'
veu9='ssh jiminny-eu-ecs9'
vprod='ssh jiminny-prod-ecs1'
vprod10='ssh jiminny-prod-ecs10'
vprod11='ssh jiminny-prod-ecs11'
vprod12='ssh jiminny-prod-ecs12'
vprod2='ssh jiminny-prod-ecs2'
vprod3='ssh jiminny-prod-ecs3'
vprod4='ssh jiminny-prod-ecs4'
vprod5='ssh jiminny-prod-ecs5'
vprod6='ssh jiminny-prod-ecs6'
vprod7='ssh jiminny-prod-ecs7'
vprod8='ssh jiminny-prod-ecs8'
vprod9='ssh jiminny-prod-ecs9'
vqa='ssh jiminny-qa-ecs1'
vqa2='ssh jiminny-qa-ecs2'
vqai='ssh jiminny-qai-ecs1'
vqai2='ssh jiminny-qai-ecs2'
vstage='ssh ec2-user@jiminny-subenv-worker-app0'
vstg='ssh jiminny-stage-ecs1'
vstg2='ssh ubuntu@jiminny-stage-ecs2'
which-command=whence
work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias
addssh='ssh-add ~/.ssh/*'
app='cd ~/jiminny/app'
cnt='docker exec -ti $(docker ps | grep worker | awk '\''{print $1}'\'') /bin/bash -c "cd /home/jiminny && bash"'
co='git checkout'
cov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'
csfix='make cs-fix'
dev='docker exec -ti $(docker ps -q --filter "name=docker_lamp_1") /bin/bash'
eu='ssh lukas@jiminny-eu-bastion -D [IP_ADDRESS]:7073 -L 7532:db:3306'
eues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'
ext='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'
fe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'
fe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'
gbr='git branch --sort=-committerdate'
gcb='git branch --show-current | pbcopy'
gs='git status'
hhh=history
hhs='history 0 | grep '
install_nano='apt-get update & apt-get install nano'
kar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'
ll='ls -la --color=tty'
nas='ssh Adm1n@[IP_ADDRESS] -p22'
poetryshell='eval ""'
prod='ssh lukas@jiminny-prod-bastion -D [IP_ADDRESS]:7072 -L 7632:db:3306'
prodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'
prophet='cd ~/jiminny/app'
prophetdown='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down"'
prophetup='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build"'
qa='ssh lukas@jiminny-qa-bastion -D [IP_ADDRESS]:7074 -L 7432:db:3306'
qaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'
qai='ssh lukas@jiminny-qai-bastion -D [IP_ADDRESS]:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'
rmbc='rm -rf bootstrap/cache/*.php'
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
run-help=man
UW PICO 5.09 New Buffer
[ Read 135 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
sp-start='npx screenpipe@latest record --disable-audio &'
sp-status='curl -s [URL_WITH_CREDENTIALS] -D [IP_ADDRESS]:7071 -L 7732:db:3306'
stges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'
veu='ssh jiminny-eu-ecs1'
veu10='ssh jiminny-eu-ecs10'
veu11='ssh jiminny-eu-ecs11'
veu12='ssh jiminny-eu-ecs12'
veu2='ssh jiminny-eu-ecs2'
veu3='ssh jiminny-eu-ecs3'
veu4='ssh jiminny-eu-ecs4'
veu5='ssh jiminny-eu-ecs5'
veu6='ssh jiminny-eu-ecs6'
veu7='ssh jiminny-eu-ecs7'
veu8='ssh jiminny-eu-ecs8'
veu9='ssh jiminny-eu-ecs9'
vprod='ssh jiminny-prod-ecs1'
vprod10='ssh jiminny-prod-ecs10'
vprod11='ssh jiminny-prod-ecs11'
vprod12='ssh jiminny-prod-ecs12'
vprod2='ssh jiminny-prod-ecs2'
vprod3='ssh jiminny-prod-ecs3'
vprod4='ssh jiminny-prod-ecs4'
vprod5='ssh jiminny-prod-ecs5'
vprod6='ssh jiminny-prod-ecs6'
vprod7='ssh jiminny-prod-ecs7'
vprod8='ssh jiminny-prod-ecs8'
vprod9='ssh jiminny-prod-ecs9'
vqa='ssh jiminny-qa-ecs1'
vqa2='ssh jiminny-qa-ecs2'
vqai='ssh jiminny-qai-ecs1'
vqai2='ssh jiminny-qai-ecs2'
vstage='ssh ec2-user@jiminny-subenv-worker-app0'
vstg='ssh jiminny-stage-ecs1'
vstg2='ssh ubuntu@jiminny-stage-ecs2'
which-command=whence
work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe\nlukas 10874 15.7 4.1 412962384 689376 s009 SN 3:49pm 32:48.19 /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio\nlukas 18357 0.9 0.0 410733264 1488 s010 S+ 4:53pm 0:00.00 grep screenpipe\nlukas 10835 0.0 0.2 411427744 30240 s009 SN 3:49pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --help\nincreased file descriptor limit from 256 to 8192 (hard limit: 9223372036854775807)\nStart recording screen, audio, and serve the API\n\nUsage: screenpipe record [OPTIONS]\n\nOptions:\n -d, --audio-chunk-duration <AUDIO_CHUNK_DURATION>\n Audio chunk duration in seconds\n \n [default: 30]\n\n -p, --port <PORT>\n Port to run the server on\n \n [default: 3030]\n\n --disable-audio\n Disable audio recording\n\n -i, --audio-device <AUDIO_DEVICE>\n Audio devices to use (can be specified multiple times)\n\n --use-system-default-audio\n Follow system default audio devices\n\n --data-dir <DATA_DIR>\n Data directory. Default to $HOME/.screenpipe\n\n --debug\n Enable debug logging for screenpipe modules\n\n -a, --audio-transcription-engine <AUDIO_TRANSCRIPTION_ENGINE>\n Audio transcription engine to use\n\n Possible values:\n - deepgram\n - whisper-tiny\n - whisper-tiny-quantized\n - whisper-large\n - whisper-large-quantized\n - whisper-large-v3-turbo\n - whisper-large-v3-turbo-quantized\n - openai-compatible\n - qwen3-asr\n - parakeet\n - disabled: Disable transcription (audio capture only, no speech-to-text)\n \n [default: parakeet]\n\n -m, --monitor-id <MONITOR_ID>\n Monitor IDs to use\n\n --use-all-monitors\n Automatically record all monitors\n\n -l, --language <LANGUAGE>\n Languages for OCR/transcription\n \n [possible values: english, chinese, german, spanish, russian, korean, french, japanese, portuguese, turkish, polish, catalan, dutch, arabic, swedish, italian, indonesian, hindi, vietnamese, finnish, hebrew, ukrainian, greek, malay, czech, romanian, danish, hungarian, norwegian, thai, urdu, croatian, bulgarian, lithuanian, latin, malayalam, welsh, slovak, persian, latvian, bengali, serbian, azerbaijani, slovenian, estonian, macedonian, nepali, mongolian, bosnian, kazakh, albanian, swahili, galician, marathi, punjabi, sinhala, khmer, afrikaans, belarusian, gujarati, amharic, yiddish, lao, uzbek, faroese, pashto, maltese, sanskrit, luxembourgish, myanmar, tibetan, tagalog, assamese, tatar, hausa, javanese]\n\n --use-pii-removal\n Enable PII removal\n\n --filter-music\n Filter music-dominant audio before transcription (reduces Spotify/YouTube music noise)\n\n --disable-vision\n Disable vision recording\n\n --ignored-windows <IGNORED_WINDOWS>\n Windows to ignore (by title, uses contains matching)\n\n --included-windows <INCLUDED_WINDOWS>\n Windows to include (by title, uses contains matching)\n\n --ignored-urls <IGNORED_URLS>\n URLs to ignore for browser privacy filtering\n\n --deepgram-api-key <DEEPGRAM_API_KEY>\n Deepgram API Key for audio transcription\n\n --transcription-mode <TRANSCRIPTION_MODE>\n Audio transcription scheduling mode: batch (default, longer chunks for quality) or realtime\n\n Possible values:\n - realtime: Transcribe immediately as audio is captured\n - batch: Accumulate longer audio batches for better transcription quality (default)\n \n [default: batch]\n\n --disable-telemetry\n Disable telemetry\n\n --video-quality <VIDEO_QUALITY>\n Video quality preset: low, balanced, high, max\n \n [default: balanced]\n\n --enable-sync\n Enable cloud sync\n\n --sync-token <SYNC_TOKEN>\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 18 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n API token for cloud sync\n \n [env: SCREENPIPE_SYNC_TOKEN=]\n\n --sync-password <SYNC_PASSWORD>\n Password for encrypting synced data\n \n [env: SCREENPIPE_SYNC_PASSWORD=]\n\n --sync-interval-secs <SYNC_INTERVAL_SECS>\n Interval between sync cycles in seconds\n \n [default: 300]\n\n --sync-machine-id <SYNC_MACHINE_ID>\n Override the machine ID for this device\n\n --pause-on-drm-content\n Pause screen and audio capture when DRM content (Netflix, Disney+, etc.) is detected\n\n --api-auth\n Require authentication for remote API access. When enabled, non-localhost requests must include Authorization: Bearer <SCREENPIPE_API_KEY>. Localhost requests are always allowed\n\n --encrypt-secrets\n Encrypt secrets (API keys, OAuth tokens) at rest using the OS keychain. Creates a keychain key if one doesn't exist. Without this flag, the CLI will use an existing key (created by the desktop app) but won't create one\n\n --retention-days <RETENTION_DAYS>\n Local data retention in days. Old screen/audio data is auto-deleted after this period. Set to 0 to disable retention (keep data forever)\n \n [default: 14]\n\n -h, --help\n Print help (see a summary with '-h')\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record --disable-audio --ignored-apps \"Boosteroid\"\nerror: unexpected argument '--ignored-apps' found\n\n tip: a similar argument exists: '--ignored-urls'\n\nUsage: screenpipe record --disable-audio --ignored-urls <IGNORED_URLS>\n\nFor more information, try '--help'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.screenpipe/config.json \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start\nsp-start='npx screenpipe@latest record --disable-audio &'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sql\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias\naddssh='ssh-add ~/.ssh/*'\napp='cd ~/jiminny/app'\ncnt='docker exec -ti $(docker ps | grep worker | awk '\\''{print $1}'\\'') /bin/bash -c \"cd /home/jiminny && bash\"'\nco='git checkout'\ncov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'\ncsfix='make cs-fix'\ndev='docker exec -ti $(docker ps -q --filter \"name=docker_lamp_1\") /bin/bash'\neu='ssh lukas@jiminny-eu-bastion -D 127.0.0.1:7073 -L 7532:db:3306'\neues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'\next='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'\nfe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'\nfe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'\ngbr='git branch --sort=-committerdate'\ngcb='git branch --show-current | pbcopy'\ngs='git status'\nhhh=history\nhhs='history 0 | grep '\ninstall_nano='apt-get update & apt-get install nano'\nkar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'\nll='ls -la --color=tty'\nnas='ssh Adm1n@192.168.0.242 -p22'\npoetryshell='eval \"\"'\nprod='ssh lukas@jiminny-prod-bastion -D 127.0.0.1:7072 -L 7632:db:3306'\nprodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'\nprophet='cd ~/jiminny/app'\nprophetdown='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down\"'\nprophetup='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build\"'\nqa='ssh lukas@jiminny-qa-bastion -D 127.0.0.1:7074 -L 7432:db:3306'\nqaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'\nqai='ssh lukas@jiminny-qai-bastion -D 127.0.0.1:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'\nrmbc='rm -rf bootstrap/cache/*.php'\nrun-help=man\nsp-start='npx screenpipe@latest record --disable-audio &'\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}\"'\nsp-stop='pkill -f screenpipe && echo '\\''screenpipe stopped'\\'\nstg='ssh lukas@jiminny-stage-bastion -D 127.0.0.1:7071 -L 7732:db:3306'\nstges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'\nveu='ssh jiminny-eu-ecs1'\nveu10='ssh jiminny-eu-ecs10'\nveu11='ssh jiminny-eu-ecs11'\nveu12='ssh jiminny-eu-ecs12'\nveu2='ssh jiminny-eu-ecs2'\nveu3='ssh jiminny-eu-ecs3'\nveu4='ssh jiminny-eu-ecs4'\nveu5='ssh jiminny-eu-ecs5'\nveu6='ssh jiminny-eu-ecs6'\nveu7='ssh jiminny-eu-ecs7'\nveu8='ssh jiminny-eu-ecs8'\nveu9='ssh jiminny-eu-ecs9'\nvprod='ssh jiminny-prod-ecs1'\nvprod10='ssh jiminny-prod-ecs10'\nvprod11='ssh jiminny-prod-ecs11'\nvprod12='ssh jiminny-prod-ecs12'\nvprod2='ssh jiminny-prod-ecs2'\nvprod3='ssh jiminny-prod-ecs3'\nvprod4='ssh jiminny-prod-ecs4'\nvprod5='ssh jiminny-prod-ecs5'\nvprod6='ssh jiminny-prod-ecs6'\nvprod7='ssh jiminny-prod-ecs7'\nvprod8='ssh jiminny-prod-ecs8'\nvprod9='ssh jiminny-prod-ecs9'\nvqa='ssh jiminny-qa-ecs1'\nvqa2='ssh jiminny-qa-ecs2'\nvqai='ssh jiminny-qai-ecs1'\nvqai2='ssh jiminny-qai-ecs2'\nvstage='ssh ec2-user@jiminny-subenv-worker-app0'\nvstg='ssh jiminny-stage-ecs1'\nvstg2='ssh ubuntu@jiminny-stage-ecs2'\nwhich-command=whence\nwork='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias\naddssh='ssh-add ~/.ssh/*'\napp='cd ~/jiminny/app'\ncnt='docker exec -ti $(docker ps | grep worker | awk '\\''{print $1}'\\'') /bin/bash -c \"cd /home/jiminny && bash\"'\nco='git checkout'\ncov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'\ncsfix='make cs-fix'\ndev='docker exec -ti $(docker ps -q --filter \"name=docker_lamp_1\") /bin/bash'\neu='ssh lukas@jiminny-eu-bastion -D 127.0.0.1:7073 -L 7532:db:3306'\neues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'\next='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'\nfe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'\nfe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'\ngbr='git branch --sort=-committerdate'\ngcb='git branch --show-current | pbcopy'\ngs='git status'\nhhh=history\nhhs='history 0 | grep '\ninstall_nano='apt-get update & apt-get install nano'\nkar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'\nll='ls -la --color=tty'\nnas='ssh Adm1n@192.168.0.242 -p22'\npoetryshell='eval \"\"'\nprod='ssh lukas@jiminny-prod-bastion -D 127.0.0.1:7072 -L 7632:db:3306'\nprodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'\nprophet='cd ~/jiminny/app'\nprophetdown='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down\"'\nprophetup='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build\"'\nqa='ssh lukas@jiminny-qa-bastion -D 127.0.0.1:7074 -L 7432:db:3306'\nqaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'\nqai='ssh lukas@jiminny-qai-bastion -D 127.0.0.1:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'\nrmbc='rm -rf bootstrap/cache/*.php'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 \nrun-help=man\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 135 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nsp-start='npx screenpipe@latest record --disable-audio &'\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}\"'\nsp-stop='pkill -f screenpipe && echo '\\''screenpipe stopped'\\'\nstg='ssh lukas@jiminny-stage-bastion -D 127.0.0.1:7071 -L 7732:db:3306'\nstges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'\nveu='ssh jiminny-eu-ecs1'\nveu10='ssh jiminny-eu-ecs10'\nveu11='ssh jiminny-eu-ecs11'\nveu12='ssh jiminny-eu-ecs12'\nveu2='ssh jiminny-eu-ecs2'\nveu3='ssh jiminny-eu-ecs3'\nveu4='ssh jiminny-eu-ecs4'\nveu5='ssh jiminny-eu-ecs5'\nveu6='ssh jiminny-eu-ecs6'\nveu7='ssh jiminny-eu-ecs7'\nveu8='ssh jiminny-eu-ecs8'\nveu9='ssh jiminny-eu-ecs9'\nvprod='ssh jiminny-prod-ecs1'\nvprod10='ssh jiminny-prod-ecs10'\nvprod11='ssh jiminny-prod-ecs11'\nvprod12='ssh jiminny-prod-ecs12'\nvprod2='ssh jiminny-prod-ecs2'\nvprod3='ssh jiminny-prod-ecs3'\nvprod4='ssh jiminny-prod-ecs4'\nvprod5='ssh jiminny-prod-ecs5'\nvprod6='ssh jiminny-prod-ecs6'\nvprod7='ssh jiminny-prod-ecs7'\nvprod8='ssh jiminny-prod-ecs8'\nvprod9='ssh jiminny-prod-ecs9'\nvqa='ssh jiminny-qa-ecs1'\nvqa2='ssh jiminny-qa-ecs2'\nvqai='ssh jiminny-qai-ecs1'\nvqai2='ssh jiminny-qai-ecs2'\nvstage='ssh ec2-user@jiminny-subenv-worker-app0'\nvstg='ssh jiminny-stage-ecs1'\nvstg2='ssh ubuntu@jiminny-stage-ecs2'\nwhich-command=whence\nwork='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile\n\nPoetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep\nlukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid\nlukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $","depth":4,"value":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe\nlukas 10874 15.7 4.1 412962384 689376 s009 SN 3:49pm 32:48.19 /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio\nlukas 18357 0.9 0.0 410733264 1488 s010 S+ 4:53pm 0:00.00 grep screenpipe\nlukas 10835 0.0 0.2 411427744 30240 s009 SN 3:49pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --help\nincreased file descriptor limit from 256 to 8192 (hard limit: 9223372036854775807)\nStart recording screen, audio, and serve the API\n\nUsage: screenpipe record [OPTIONS]\n\nOptions:\n -d, --audio-chunk-duration <AUDIO_CHUNK_DURATION>\n Audio chunk duration in seconds\n \n [default: 30]\n\n -p, --port <PORT>\n Port to run the server on\n \n [default: 3030]\n\n --disable-audio\n Disable audio recording\n\n -i, --audio-device <AUDIO_DEVICE>\n Audio devices to use (can be specified multiple times)\n\n --use-system-default-audio\n Follow system default audio devices\n\n --data-dir <DATA_DIR>\n Data directory. Default to $HOME/.screenpipe\n\n --debug\n Enable debug logging for screenpipe modules\n\n -a, --audio-transcription-engine <AUDIO_TRANSCRIPTION_ENGINE>\n Audio transcription engine to use\n\n Possible values:\n - deepgram\n - whisper-tiny\n - whisper-tiny-quantized\n - whisper-large\n - whisper-large-quantized\n - whisper-large-v3-turbo\n - whisper-large-v3-turbo-quantized\n - openai-compatible\n - qwen3-asr\n - parakeet\n - disabled: Disable transcription (audio capture only, no speech-to-text)\n \n [default: parakeet]\n\n -m, --monitor-id <MONITOR_ID>\n Monitor IDs to use\n\n --use-all-monitors\n Automatically record all monitors\n\n -l, --language <LANGUAGE>\n Languages for OCR/transcription\n \n [possible values: english, chinese, german, spanish, russian, korean, french, japanese, portuguese, turkish, polish, catalan, dutch, arabic, swedish, italian, indonesian, hindi, vietnamese, finnish, hebrew, ukrainian, greek, malay, czech, romanian, danish, hungarian, norwegian, thai, urdu, croatian, bulgarian, lithuanian, latin, malayalam, welsh, slovak, persian, latvian, bengali, serbian, azerbaijani, slovenian, estonian, macedonian, nepali, mongolian, bosnian, kazakh, albanian, swahili, galician, marathi, punjabi, sinhala, khmer, afrikaans, belarusian, gujarati, amharic, yiddish, lao, uzbek, faroese, pashto, maltese, sanskrit, luxembourgish, myanmar, tibetan, tagalog, assamese, tatar, hausa, javanese]\n\n --use-pii-removal\n Enable PII removal\n\n --filter-music\n Filter music-dominant audio before transcription (reduces Spotify/YouTube music noise)\n\n --disable-vision\n Disable vision recording\n\n --ignored-windows <IGNORED_WINDOWS>\n Windows to ignore (by title, uses contains matching)\n\n --included-windows <INCLUDED_WINDOWS>\n Windows to include (by title, uses contains matching)\n\n --ignored-urls <IGNORED_URLS>\n URLs to ignore for browser privacy filtering\n\n --deepgram-api-key <DEEPGRAM_API_KEY>\n Deepgram API Key for audio transcription\n\n --transcription-mode <TRANSCRIPTION_MODE>\n Audio transcription scheduling mode: batch (default, longer chunks for quality) or realtime\n\n Possible values:\n - realtime: Transcribe immediately as audio is captured\n - batch: Accumulate longer audio batches for better transcription quality (default)\n \n [default: batch]\n\n --disable-telemetry\n Disable telemetry\n\n --video-quality <VIDEO_QUALITY>\n Video quality preset: low, balanced, high, max\n \n [default: balanced]\n\n --enable-sync\n Enable cloud sync\n\n --sync-token <SYNC_TOKEN>\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 18 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n API token for cloud sync\n \n [env: SCREENPIPE_SYNC_TOKEN=]\n\n --sync-password <SYNC_PASSWORD>\n Password for encrypting synced data\n \n [env: SCREENPIPE_SYNC_PASSWORD=]\n\n --sync-interval-secs <SYNC_INTERVAL_SECS>\n Interval between sync cycles in seconds\n \n [default: 300]\n\n --sync-machine-id <SYNC_MACHINE_ID>\n Override the machine ID for this device\n\n --pause-on-drm-content\n Pause screen and audio capture when DRM content (Netflix, Disney+, etc.) is detected\n\n --api-auth\n Require authentication for remote API access. When enabled, non-localhost requests must include Authorization: Bearer <SCREENPIPE_API_KEY>. Localhost requests are always allowed\n\n --encrypt-secrets\n Encrypt secrets (API keys, OAuth tokens) at rest using the OS keychain. Creates a keychain key if one doesn't exist. Without this flag, the CLI will use an existing key (created by the desktop app) but won't create one\n\n --retention-days <RETENTION_DAYS>\n Local data retention in days. Old screen/audio data is auto-deleted after this period. Set to 0 to disable retention (keep data forever)\n \n [default: 14]\n\n -h, --help\n Print help (see a summary with '-h')\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record --disable-audio --ignored-apps \"Boosteroid\"\nerror: unexpected argument '--ignored-apps' found\n\n tip: a similar argument exists: '--ignored-urls'\n\nUsage: screenpipe record --disable-audio --ignored-urls <IGNORED_URLS>\n\nFor more information, try '--help'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.screenpipe/config.json \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start\nsp-start='npx screenpipe@latest record --disable-audio &'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sql\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias\naddssh='ssh-add ~/.ssh/*'\napp='cd ~/jiminny/app'\ncnt='docker exec -ti $(docker ps | grep worker | awk '\\''{print $1}'\\'') /bin/bash -c \"cd /home/jiminny && bash\"'\nco='git checkout'\ncov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'\ncsfix='make cs-fix'\ndev='docker exec -ti $(docker ps -q --filter \"name=docker_lamp_1\") /bin/bash'\neu='ssh lukas@jiminny-eu-bastion -D 127.0.0.1:7073 -L 7532:db:3306'\neues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'\next='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'\nfe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'\nfe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'\ngbr='git branch --sort=-committerdate'\ngcb='git branch --show-current | pbcopy'\ngs='git status'\nhhh=history\nhhs='history 0 | grep '\ninstall_nano='apt-get update & apt-get install nano'\nkar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'\nll='ls -la --color=tty'\nnas='ssh Adm1n@192.168.0.242 -p22'\npoetryshell='eval \"\"'\nprod='ssh lukas@jiminny-prod-bastion -D 127.0.0.1:7072 -L 7632:db:3306'\nprodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'\nprophet='cd ~/jiminny/app'\nprophetdown='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down\"'\nprophetup='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build\"'\nqa='ssh lukas@jiminny-qa-bastion -D 127.0.0.1:7074 -L 7432:db:3306'\nqaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'\nqai='ssh lukas@jiminny-qai-bastion -D 127.0.0.1:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'\nrmbc='rm -rf bootstrap/cache/*.php'\nrun-help=man\nsp-start='npx screenpipe@latest record --disable-audio &'\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}\"'\nsp-stop='pkill -f screenpipe && echo '\\''screenpipe stopped'\\'\nstg='ssh lukas@jiminny-stage-bastion -D 127.0.0.1:7071 -L 7732:db:3306'\nstges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'\nveu='ssh jiminny-eu-ecs1'\nveu10='ssh jiminny-eu-ecs10'\nveu11='ssh jiminny-eu-ecs11'\nveu12='ssh jiminny-eu-ecs12'\nveu2='ssh jiminny-eu-ecs2'\nveu3='ssh jiminny-eu-ecs3'\nveu4='ssh jiminny-eu-ecs4'\nveu5='ssh jiminny-eu-ecs5'\nveu6='ssh jiminny-eu-ecs6'\nveu7='ssh jiminny-eu-ecs7'\nveu8='ssh jiminny-eu-ecs8'\nveu9='ssh jiminny-eu-ecs9'\nvprod='ssh jiminny-prod-ecs1'\nvprod10='ssh jiminny-prod-ecs10'\nvprod11='ssh jiminny-prod-ecs11'\nvprod12='ssh jiminny-prod-ecs12'\nvprod2='ssh jiminny-prod-ecs2'\nvprod3='ssh jiminny-prod-ecs3'\nvprod4='ssh jiminny-prod-ecs4'\nvprod5='ssh jiminny-prod-ecs5'\nvprod6='ssh jiminny-prod-ecs6'\nvprod7='ssh jiminny-prod-ecs7'\nvprod8='ssh jiminny-prod-ecs8'\nvprod9='ssh jiminny-prod-ecs9'\nvqa='ssh jiminny-qa-ecs1'\nvqa2='ssh jiminny-qa-ecs2'\nvqai='ssh jiminny-qai-ecs1'\nvqai2='ssh jiminny-qai-ecs2'\nvstage='ssh ec2-user@jiminny-subenv-worker-app0'\nvstg='ssh jiminny-stage-ecs1'\nvstg2='ssh ubuntu@jiminny-stage-ecs2'\nwhich-command=whence\nwork='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias\naddssh='ssh-add ~/.ssh/*'\napp='cd ~/jiminny/app'\ncnt='docker exec -ti $(docker ps | grep worker | awk '\\''{print $1}'\\'') /bin/bash -c \"cd /home/jiminny && bash\"'\nco='git checkout'\ncov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'\ncsfix='make cs-fix'\ndev='docker exec -ti $(docker ps -q --filter \"name=docker_lamp_1\") /bin/bash'\neu='ssh lukas@jiminny-eu-bastion -D 127.0.0.1:7073 -L 7532:db:3306'\neues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'\next='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'\nfe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'\nfe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'\ngbr='git branch --sort=-committerdate'\ngcb='git branch --show-current | pbcopy'\ngs='git status'\nhhh=history\nhhs='history 0 | grep '\ninstall_nano='apt-get update & apt-get install nano'\nkar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'\nll='ls -la --color=tty'\nnas='ssh Adm1n@192.168.0.242 -p22'\npoetryshell='eval \"\"'\nprod='ssh lukas@jiminny-prod-bastion -D 127.0.0.1:7072 -L 7632:db:3306'\nprodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'\nprophet='cd ~/jiminny/app'\nprophetdown='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down\"'\nprophetup='aws-vault exec staging -- bash -c \"env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build\"'\nqa='ssh lukas@jiminny-qa-bastion -D 127.0.0.1:7074 -L 7432:db:3306'\nqaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'\nqai='ssh lukas@jiminny-qai-bastion -D 127.0.0.1:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'\nrmbc='rm -rf bootstrap/cache/*.php'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 \nrun-help=man\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 135 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nsp-start='npx screenpipe@latest record --disable-audio &'\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}\"'\nsp-stop='pkill -f screenpipe && echo '\\''screenpipe stopped'\\'\nstg='ssh lukas@jiminny-stage-bastion -D 127.0.0.1:7071 -L 7732:db:3306'\nstges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'\nveu='ssh jiminny-eu-ecs1'\nveu10='ssh jiminny-eu-ecs10'\nveu11='ssh jiminny-eu-ecs11'\nveu12='ssh jiminny-eu-ecs12'\nveu2='ssh jiminny-eu-ecs2'\nveu3='ssh jiminny-eu-ecs3'\nveu4='ssh jiminny-eu-ecs4'\nveu5='ssh jiminny-eu-ecs5'\nveu6='ssh jiminny-eu-ecs6'\nveu7='ssh jiminny-eu-ecs7'\nveu8='ssh jiminny-eu-ecs8'\nveu9='ssh jiminny-eu-ecs9'\nvprod='ssh jiminny-prod-ecs1'\nvprod10='ssh jiminny-prod-ecs10'\nvprod11='ssh jiminny-prod-ecs11'\nvprod12='ssh jiminny-prod-ecs12'\nvprod2='ssh jiminny-prod-ecs2'\nvprod3='ssh jiminny-prod-ecs3'\nvprod4='ssh jiminny-prod-ecs4'\nvprod5='ssh jiminny-prod-ecs5'\nvprod6='ssh jiminny-prod-ecs6'\nvprod7='ssh jiminny-prod-ecs7'\nvprod8='ssh jiminny-prod-ecs8'\nvprod9='ssh jiminny-prod-ecs9'\nvqa='ssh jiminny-qa-ecs1'\nvqa2='ssh jiminny-qa-ecs2'\nvqai='ssh jiminny-qai-ecs1'\nvqai2='ssh jiminny-qai-ecs2'\nvstage='ssh ec2-user@jiminny-subenv-worker-app0'\nvstg='ssh jiminny-stage-ecs1'\nvstg2='ssh ubuntu@jiminny-stage-ecs2'\nwhich-command=whence\nwork='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile\n\nPoetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep\nlukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid\nlukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.196875,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.196875,"top":0.05888889,"width":0.196875,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20104167,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39375,"top":0.05888889,"width":0.19652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.39791667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5902778,"top":0.05888889,"width":0.19652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59444445,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.78680557,"top":0.05888889,"width":0.19652778,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79097223,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
1107319304353994329
|
-3719491766198669903
|
visual_change
|
accessibility
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screen lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe
lukas 10874 15.7 4.1 412962384 689376 s009 SN 3:49pm 32:48.19 /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio
lukas 18357 0.9 0.0 410733264 1488 s010 S+ 4:53pm 0:00.00 grep screenpipe
lukas 10835 0.0 0.2 411427744 30240 s009 SN 3:49pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --help
increased file descriptor limit from 256 to 8192 (hard limit: 9223372036854775807)
Start recording screen, audio, and serve the API
Usage: screenpipe record [OPTIONS]
Options:
-d, --audio-chunk-duration <AUDIO_CHUNK_DURATION>
Audio chunk duration in seconds
[default: 30]
-p, --port <PORT>
Port to run the server on
[default: 3030]
--disable-audio
Disable audio recording
-i, --audio-device <AUDIO_DEVICE>
Audio devices to use (can be specified multiple times)
--use-system-default-audio
Follow system default audio devices
--data-dir <DATA_DIR>
Data directory. Default to $HOME/.screenpipe
--debug
Enable debug logging for screenpipe modules
-a, --audio-transcription-engine <AUDIO_TRANSCRIPTION_ENGINE>
Audio transcription engine to use
Possible values:
- deepgram
- whisper-tiny
- whisper-tiny-quantized
- whisper-large
- whisper-large-quantized
- whisper-large-v3-turbo
- whisper-large-v3-turbo-quantized
- openai-compatible
- qwen3-asr
- parakeet
- disabled: Disable transcription (audio capture only, no speech-to-text)
[default: parakeet]
-m, --monitor-id <MONITOR_ID>
Monitor IDs to use
--use-all-monitors
Automatically record all monitors
-l, --language <LANGUAGE>
Languages for OCR/transcription
[possible values: english, chinese, german, spanish, russian, korean, french, japanese, portuguese, turkish, polish, catalan, dutch, arabic, swedish, italian, indonesian, hindi, vietnamese, finnish, hebrew, ukrainian, greek, malay, czech, romanian, danish, hungarian, norwegian, thai, urdu, croatian, bulgarian, lithuanian, latin, malayalam, welsh, slovak, persian, latvian, bengali, serbian, azerbaijani, slovenian, estonian, macedonian, nepali, mongolian, bosnian, kazakh, albanian, swahili, galician, marathi, punjabi, sinhala, khmer, afrikaans, belarusian, gujarati, amharic, yiddish, lao, uzbek, faroese, pashto, maltese, sanskrit, luxembourgish, myanmar, tibetan, tagalog, assamese, tatar, hausa, javanese]
--use-pii-removal
Enable PII removal
--filter-music
Filter music-dominant audio before transcription (reduces Spotify/YouTube music noise)
--disable-vision
Disable vision recording
--ignored-windows <IGNORED_WINDOWS>
Windows to ignore (by title, uses contains matching)
--included-windows <INCLUDED_WINDOWS>
Windows to include (by title, uses contains matching)
--ignored-urls <IGNORED_URLS>
URLs to ignore for browser privacy filtering
--deepgram-api-key <DEEPGRAM_API_KEY>
Deepgram API Key for audio transcription
--transcription-mode <TRANSCRIPTION_MODE>
Audio transcription scheduling mode: batch (default, longer chunks for quality) or realtime
Possible values:
- realtime: Transcribe immediately as audio is captured
- batch: Accumulate longer audio batches for better transcription quality (default)
[default: batch]
--disable-telemetry
Disable telemetry
--video-quality <VIDEO_QUALITY>
Video quality preset: low, balanced, high, max
[default: balanced]
--enable-sync
Enable cloud sync
--sync-token <SYNC_TOKEN>
UW PICO 5.09 New Buffer
[ Read 18 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
API token for cloud sync
[env: SCREENPIPE_SYNC_TOKEN=]
--sync-password <SYNC_PASSWORD>
Password for encrypting synced data
[env: SCREENPIPE_SYNC_PASSWORD=[PASSWORD]
--sync-interval-secs <SYNC_INTERVAL_SECS>
Interval between sync cycles in seconds
[default: 300]
--sync-machine-id <SYNC_MACHINE_ID>
Override the machine ID for this device
--pause-on-drm-content
Pause screen and audio capture when DRM content (Netflix, Disney+, etc.) is detected
--api-auth
Require authentication for remote API access. When enabled, non-localhost requests must include Authorization: Bearer <SCREENPIPE_API_KEY>. Localhost requests are always allowed
--encrypt-secrets
Encrypt secrets (API keys, OAuth tokens) at rest using the OS keychain. Creates a keychain key if one doesn't exist. Without this flag, the CLI will use an existing key (created by the desktop app) but won't create one
--retention-days <RETENTION_DAYS>
Local data retention in days. Old screen/audio data is auto-deleted after this period. Set to 0 to disable retention (keep data forever)
[default: 14]
-h, --help
Print help (see a summary with '-h')
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record --disable-audio --ignored-apps "Boosteroid"
error: unexpected argument '--ignored-apps' found
tip: a similar argument exists: '--ignored-urls'
Usage: screenpipe record --disable-audio --ignored-urls <IGNORED_URLS>
For more information, try '--help'.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.screenpipe/config.json
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start
sp-start='npx screenpipe@latest record --disable-audio &'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sql
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias
addssh='ssh-add ~/.ssh/*'
app='cd ~/jiminny/app'
cnt='docker exec -ti $(docker ps | grep worker | awk '\''{print $1}'\'') /bin/bash -c "cd /home/jiminny && bash"'
co='git checkout'
cov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'
csfix='make cs-fix'
dev='docker exec -ti $(docker ps -q --filter "name=docker_lamp_1") /bin/bash'
eu='ssh lukas@jiminny-eu-bastion -D [IP_ADDRESS]:7073 -L 7532:db:3306'
eues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'
ext='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'
fe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'
fe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'
gbr='git branch --sort=-committerdate'
gcb='git branch --show-current | pbcopy'
gs='git status'
hhh=history
hhs='history 0 | grep '
install_nano='apt-get update & apt-get install nano'
kar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'
ll='ls -la --color=tty'
nas='ssh Adm1n@[IP_ADDRESS] -p22'
poetryshell='eval ""'
prod='ssh lukas@jiminny-prod-bastion -D [IP_ADDRESS]:7072 -L 7632:db:3306'
prodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'
prophet='cd ~/jiminny/app'
prophetdown='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down"'
prophetup='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build"'
qa='ssh lukas@jiminny-qa-bastion -D [IP_ADDRESS]:7074 -L 7432:db:3306'
qaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'
qai='ssh lukas@jiminny-qai-bastion -D [IP_ADDRESS]:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'
rmbc='rm -rf bootstrap/cache/*.php'
run-help=man
sp-start='npx screenpipe@latest record --disable-audio &'
sp-status='curl -s [URL_WITH_CREDENTIALS] -D [IP_ADDRESS]:7071 -L 7732:db:3306'
stges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'
veu='ssh jiminny-eu-ecs1'
veu10='ssh jiminny-eu-ecs10'
veu11='ssh jiminny-eu-ecs11'
veu12='ssh jiminny-eu-ecs12'
veu2='ssh jiminny-eu-ecs2'
veu3='ssh jiminny-eu-ecs3'
veu4='ssh jiminny-eu-ecs4'
veu5='ssh jiminny-eu-ecs5'
veu6='ssh jiminny-eu-ecs6'
veu7='ssh jiminny-eu-ecs7'
veu8='ssh jiminny-eu-ecs8'
veu9='ssh jiminny-eu-ecs9'
vprod='ssh jiminny-prod-ecs1'
vprod10='ssh jiminny-prod-ecs10'
vprod11='ssh jiminny-prod-ecs11'
vprod12='ssh jiminny-prod-ecs12'
vprod2='ssh jiminny-prod-ecs2'
vprod3='ssh jiminny-prod-ecs3'
vprod4='ssh jiminny-prod-ecs4'
vprod5='ssh jiminny-prod-ecs5'
vprod6='ssh jiminny-prod-ecs6'
vprod7='ssh jiminny-prod-ecs7'
vprod8='ssh jiminny-prod-ecs8'
vprod9='ssh jiminny-prod-ecs9'
vqa='ssh jiminny-qa-ecs1'
vqa2='ssh jiminny-qa-ecs2'
vqai='ssh jiminny-qai-ecs1'
vqai2='ssh jiminny-qai-ecs2'
vstage='ssh ec2-user@jiminny-subenv-worker-app0'
vstg='ssh jiminny-stage-ecs1'
vstg2='ssh ubuntu@jiminny-stage-ecs2'
which-command=whence
work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias
addssh='ssh-add ~/.ssh/*'
app='cd ~/jiminny/app'
cnt='docker exec -ti $(docker ps | grep worker | awk '\''{print $1}'\'') /bin/bash -c "cd /home/jiminny && bash"'
co='git checkout'
cov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'
csfix='make cs-fix'
dev='docker exec -ti $(docker ps -q --filter "name=docker_lamp_1") /bin/bash'
eu='ssh lukas@jiminny-eu-bastion -D [IP_ADDRESS]:7073 -L 7532:db:3306'
eues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'
ext='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'
fe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'
fe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'
gbr='git branch --sort=-committerdate'
gcb='git branch --show-current | pbcopy'
gs='git status'
hhh=history
hhs='history 0 | grep '
install_nano='apt-get update & apt-get install nano'
kar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'
ll='ls -la --color=tty'
nas='ssh Adm1n@[IP_ADDRESS] -p22'
poetryshell='eval ""'
prod='ssh lukas@jiminny-prod-bastion -D [IP_ADDRESS]:7072 -L 7632:db:3306'
prodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'
prophet='cd ~/jiminny/app'
prophetdown='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down"'
prophetup='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build"'
qa='ssh lukas@jiminny-qa-bastion -D [IP_ADDRESS]:7074 -L 7432:db:3306'
qaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'
qai='ssh lukas@jiminny-qai-bastion -D [IP_ADDRESS]:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'
rmbc='rm -rf bootstrap/cache/*.php'
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
run-help=man
UW PICO 5.09 New Buffer
[ Read 135 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
sp-start='npx screenpipe@latest record --disable-audio &'
sp-status='curl -s [URL_WITH_CREDENTIALS] -D [IP_ADDRESS]:7071 -L 7732:db:3306'
stges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'
veu='ssh jiminny-eu-ecs1'
veu10='ssh jiminny-eu-ecs10'
veu11='ssh jiminny-eu-ecs11'
veu12='ssh jiminny-eu-ecs12'
veu2='ssh jiminny-eu-ecs2'
veu3='ssh jiminny-eu-ecs3'
veu4='ssh jiminny-eu-ecs4'
veu5='ssh jiminny-eu-ecs5'
veu6='ssh jiminny-eu-ecs6'
veu7='ssh jiminny-eu-ecs7'
veu8='ssh jiminny-eu-ecs8'
veu9='ssh jiminny-eu-ecs9'
vprod='ssh jiminny-prod-ecs1'
vprod10='ssh jiminny-prod-ecs10'
vprod11='ssh jiminny-prod-ecs11'
vprod12='ssh jiminny-prod-ecs12'
vprod2='ssh jiminny-prod-ecs2'
vprod3='ssh jiminny-prod-ecs3'
vprod4='ssh jiminny-prod-ecs4'
vprod5='ssh jiminny-prod-ecs5'
vprod6='ssh jiminny-prod-ecs6'
vprod7='ssh jiminny-prod-ecs7'
vprod8='ssh jiminny-prod-ecs8'
vprod9='ssh jiminny-prod-ecs9'
vqa='ssh jiminny-qa-ecs1'
vqa2='ssh jiminny-qa-ecs2'
vqai='ssh jiminny-qai-ecs1'
vqai2='ssh jiminny-qai-ecs2'
vstage='ssh ec2-user@jiminny-subenv-worker-app0'
vstg='ssh jiminny-stage-ecs1'
vstg2='ssh ubuntu@jiminny-stage-ecs2'
which-command=whence
work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40262
|
834
|
19
|
2026-04-16T15:42:42.561139+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776354162561_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
work='cd ~/jiminny/infrastructure/dev/docker & work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';"
1720
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name FROM sqlite_master WHERE type='table'
ORDER BY name;" | while read t; do
count=$(sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;")
echo "$t: $count"
done
_sqlx_migrations: 74
audio_chunks: 90
audio_tags: 0
audio_transcriptions: 3
audio_transcriptions_fts: 3
audio_transcriptions_fts_config: 1
audio_transcriptions_fts_data: 5
audio_transcriptions_fts_docsize: 3
audio_transcriptions_fts_idx: 3
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile\n\nPoetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep\nlukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid\nlukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';\"\n1720\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\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 $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name FROM sqlite_master WHERE type='table'\nORDER BY name;\" | while read t; do\n count=$(sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM $t;\")\n echo \"$t: $count\"\ndone\n_sqlx_migrations: 74\naudio_chunks: 90\naudio_tags: 0\naudio_transcriptions: 3\naudio_transcriptions_fts: 3\naudio_transcriptions_fts_config: 1\naudio_transcriptions_fts_data: 5\naudio_transcriptions_fts_docsize: 3\naudio_transcriptions_fts_idx: 3","depth":4,"value":"work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile\n\nPoetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep\nlukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid\nlukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';\"\n1720\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\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 $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name FROM sqlite_master WHERE type='table'\nORDER BY name;\" | while read t; do\n count=$(sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM $t;\")\n echo \"$t: $count\"\ndone\n_sqlx_migrations: 74\naudio_chunks: 90\naudio_tags: 0\naudio_transcriptions: 3\naudio_transcriptions_fts: 3\naudio_transcriptions_fts_config: 1\naudio_transcriptions_fts_data: 5\naudio_transcriptions_fts_docsize: 3\naudio_transcriptions_fts_idx: 3","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-742279873497773679
|
-3682952867895385823
|
visual_change
|
accessibility
|
NULL
|
work='cd ~/jiminny/infrastructure/dev/docker & work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';"
1720
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name FROM sqlite_master WHERE type='table'
ORDER BY name;" | while read t; do
count=$(sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;")
echo "$t: $count"
done
_sqlx_migrations: 74
audio_chunks: 90
audio_tags: 0
audio_transcriptions: 3
audio_transcriptions_fts: 3
audio_transcriptions_fts_config: 1
audio_transcriptions_fts_data: 5
audio_transcriptions_fts_docsize: 3
audio_transcriptions_fts_idx: 3
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40261
|
NULL
|
|
40377
|
839
|
53
|
2026-04-16T15:53:14.986979+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776354794986_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
work='cd ~/jiminny/infrastructure/dev/docker & work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';"
1720
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name FROM sqlite_master WHERE type='table'
ORDER BY name;" | while read t; do
count=$(sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;")
echo "$t: $count"
done
_sqlx_migrations: 74
audio_chunks: 90
audio_tags: 0
audio_transcriptions: 3
audio_transcriptions_fts: 3
audio_transcriptions_fts_config: 1
audio_transcriptions_fts_data: 5
audio_transcriptions_fts_docsize: 3
audio_transcriptions_fts_idx: 3
elements: 2583644
elements_fts: 2583644
elements_fts_config: 1
elements_fts_data: 12471
elements_fts_docsize: 2575943
elements_fts_idx: 5265
frames: 40262
frames_fts: 40240
frames_fts_config: 1
frames_fts_content: 40240
frames_fts_data: 11680
frames_fts_docsize: 40240
frames_fts_idx: 7447
meetings: 2
memories: 0
memories_fts: 0
memories_fts_config: 1
memories_fts_data: 2
memories_fts_docsize: 0
memories_fts_idx: 0
ocr_text: 32365
pipe_executions: 0
pipe_scheduler_state: 0
secrets: 1
speaker_embeddings: 3
speakers: 3
sqlite_sequence: 9
tags: 0
ui_events: 50996
ui_events_fts: 50996
ui_events_fts_config: 1
ui_events_fts_data: 468
ui_events_fts_docsize: 50996
ui_events_fts_idx: 154
video_chunks: 829
vision_tags: 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE timestamp >= datetime('now', '-1 day');"
sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM ui_events WHERE timestamp >= datetime('now', '-1 day');"
sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE timestamp >= datetime('now', '-1 day'));"
21496
24765
1446831
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
6.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.0G /Users/lukas/.screenpipe/data
2.7G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite ".schema meetings"
CREATE TABLE meetings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
meeting_start TEXT NOT NULL,
meeting_end TEXT,
meeting_app TEXT NOT NULL,
title TEXT,
attendees TEXT,
detection_source TEXT NOT NULL DEFAULT 'app',
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
, note TEXT);
CREATE INDEX idx_meetings_start ON meetings(meeting_start);
CREATE INDEX idx_meetings_end ON meetings(meeting_end);
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
1|2026-04-16T07:33:44.830Z|2026-04-16T07:44:33.417Z|Slack|||ui_scan|2026-04-16T07:33:44.830Z|## typed during meeting
ststg
vstg
docker ps
--report-id
--result-id
```
```
2|2026-04-16T10:50:05.968Z|2026-04-16T10:59:54.482Z|Slack|||ui_scan|2026-04-16T10:50:05.968Z|
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile\n\nPoetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep\nlukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid\nlukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';\"\n1720\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\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 $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name FROM sqlite_master WHERE type='table'\nORDER BY name;\" | while read t; do\n count=$(sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM $t;\")\n echo \"$t: $count\"\ndone\n_sqlx_migrations: 74\naudio_chunks: 90\naudio_tags: 0\naudio_transcriptions: 3\naudio_transcriptions_fts: 3\naudio_transcriptions_fts_config: 1\naudio_transcriptions_fts_data: 5\naudio_transcriptions_fts_docsize: 3\naudio_transcriptions_fts_idx: 3\nelements: 2583644\nelements_fts: 2583644\nelements_fts_config: 1\nelements_fts_data: 12471\nelements_fts_docsize: 2575943\nelements_fts_idx: 5265\nframes: 40262\nframes_fts: 40240\nframes_fts_config: 1\nframes_fts_content: 40240\nframes_fts_data: 11680\nframes_fts_docsize: 40240\nframes_fts_idx: 7447\nmeetings: 2\nmemories: 0\nmemories_fts: 0\nmemories_fts_config: 1\nmemories_fts_data: 2\nmemories_fts_docsize: 0\nmemories_fts_idx: 0\nocr_text: 32365\npipe_executions: 0\npipe_scheduler_state: 0\nsecrets: 1\nspeaker_embeddings: 3\nspeakers: 3\nsqlite_sequence: 9\ntags: 0\nui_events: 50996\nui_events_fts: 50996\nui_events_fts_config: 1\nui_events_fts_data: 468\nui_events_fts_docsize: 50996\nui_events_fts_idx: 154\nvideo_chunks: 829\nvision_tags: 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE timestamp >= datetime('now', '-1 day');\"\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM ui_events WHERE timestamp >= datetime('now', '-1 day');\"\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE timestamp >= datetime('now', '-1 day'));\"\n21496\n24765\n1446831\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n6.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n4.0G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 36K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n160K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\n172K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log\n232K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \".schema meetings\"\nCREATE TABLE meetings (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n meeting_start TEXT NOT NULL,\n meeting_end TEXT,\n meeting_app TEXT NOT NULL,\n title TEXT,\n attendees TEXT,\n detection_source TEXT NOT NULL DEFAULT 'app',\n created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n, note TEXT);\nCREATE INDEX idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX idx_meetings_end ON meetings(meeting_end);\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\n1|2026-04-16T07:33:44.830Z|2026-04-16T07:44:33.417Z|Slack|||ui_scan|2026-04-16T07:33:44.830Z|## typed during meeting\n\nststg\nvstg\ndocker ps\n\n\n\n\n\n\n \n\n--report-id \n\n --result-id \n\n```\n```\n2|2026-04-16T10:50:05.968Z|2026-04-16T10:59:54.482Z|Slack|||ui_scan|2026-04-16T10:50:05.968Z|","depth":4,"value":"work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'\nxd='make docker-xdebug-disable'\nxe='make docker-xdebug-enable'\nzp='nano ~/.zprofile'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile\n\nPoetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');\"\n1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep\nlukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid\nlukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');\"\n2026-04-16T06:12:46.590663+00:00\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';\"\n0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';\"\n1720\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp\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 $ zp\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name FROM sqlite_master WHERE type='table'\nORDER BY name;\" | while read t; do\n count=$(sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM $t;\")\n echo \"$t: $count\"\ndone\n_sqlx_migrations: 74\naudio_chunks: 90\naudio_tags: 0\naudio_transcriptions: 3\naudio_transcriptions_fts: 3\naudio_transcriptions_fts_config: 1\naudio_transcriptions_fts_data: 5\naudio_transcriptions_fts_docsize: 3\naudio_transcriptions_fts_idx: 3\nelements: 2583644\nelements_fts: 2583644\nelements_fts_config: 1\nelements_fts_data: 12471\nelements_fts_docsize: 2575943\nelements_fts_idx: 5265\nframes: 40262\nframes_fts: 40240\nframes_fts_config: 1\nframes_fts_content: 40240\nframes_fts_data: 11680\nframes_fts_docsize: 40240\nframes_fts_idx: 7447\nmeetings: 2\nmemories: 0\nmemories_fts: 0\nmemories_fts_config: 1\nmemories_fts_data: 2\nmemories_fts_docsize: 0\nmemories_fts_idx: 0\nocr_text: 32365\npipe_executions: 0\npipe_scheduler_state: 0\nsecrets: 1\nspeaker_embeddings: 3\nspeakers: 3\nsqlite_sequence: 9\ntags: 0\nui_events: 50996\nui_events_fts: 50996\nui_events_fts_config: 1\nui_events_fts_data: 468\nui_events_fts_docsize: 50996\nui_events_fts_idx: 154\nvideo_chunks: 829\nvision_tags: 0\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM frames WHERE timestamp >= datetime('now', '-1 day');\"\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM ui_events WHERE timestamp >= datetime('now', '-1 day');\"\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE timestamp >= datetime('now', '-1 day'));\"\n21496\n24765\n1446831\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe \n6.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*\n4.0K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/config.json\n4.0G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/data\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\n 64K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-shm\n 16M\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite-wal\n 36K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/pipes\n132K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log\n 96K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log\n 72K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log\n160K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log\n172K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log\n232K\u0000\u0000\u0000\t/Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \".schema meetings\"\nCREATE TABLE meetings (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n meeting_start TEXT NOT NULL,\n meeting_end TEXT,\n meeting_app TEXT NOT NULL,\n title TEXT,\n attendees TEXT,\n detection_source TEXT NOT NULL DEFAULT 'app',\n created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\n, note TEXT);\nCREATE INDEX idx_meetings_start ON meetings(meeting_start);\nCREATE INDEX idx_meetings_end ON meetings(meeting_end);\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\n1|2026-04-16T07:33:44.830Z|2026-04-16T07:44:33.417Z|Slack|||ui_scan|2026-04-16T07:33:44.830Z|## typed during meeting\n\nststg\nvstg\ndocker ps\n\n\n\n\n\n\n \n\n--report-id \n\n --result-id \n\n```\n```\n2|2026-04-16T10:50:05.968Z|2026-04-16T10:59:54.482Z|Slack|||ui_scan|2026-04-16T10:50:05.968Z|","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-6773589532879595639
|
-1392837548386623183
|
visual_change
|
accessibility
|
NULL
|
work='cd ~/jiminny/infrastructure/dev/docker & work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';"
1720
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name FROM sqlite_master WHERE type='table'
ORDER BY name;" | while read t; do
count=$(sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;")
echo "$t: $count"
done
_sqlx_migrations: 74
audio_chunks: 90
audio_tags: 0
audio_transcriptions: 3
audio_transcriptions_fts: 3
audio_transcriptions_fts_config: 1
audio_transcriptions_fts_data: 5
audio_transcriptions_fts_docsize: 3
audio_transcriptions_fts_idx: 3
elements: 2583644
elements_fts: 2583644
elements_fts_config: 1
elements_fts_data: 12471
elements_fts_docsize: 2575943
elements_fts_idx: 5265
frames: 40262
frames_fts: 40240
frames_fts_config: 1
frames_fts_content: 40240
frames_fts_data: 11680
frames_fts_docsize: 40240
frames_fts_idx: 7447
meetings: 2
memories: 0
memories_fts: 0
memories_fts_config: 1
memories_fts_data: 2
memories_fts_docsize: 0
memories_fts_idx: 0
ocr_text: 32365
pipe_executions: 0
pipe_scheduler_state: 0
secrets: 1
speaker_embeddings: 3
speakers: 3
sqlite_sequence: 9
tags: 0
ui_events: 50996
ui_events_fts: 50996
ui_events_fts_config: 1
ui_events_fts_data: 468
ui_events_fts_docsize: 50996
ui_events_fts_idx: 154
video_chunks: 829
vision_tags: 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE timestamp >= datetime('now', '-1 day');"
sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM ui_events WHERE timestamp >= datetime('now', '-1 day');"
sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE timestamp >= datetime('now', '-1 day'));"
21496
24765
1446831
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
6.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.0G /Users/lukas/.screenpipe/data
2.7G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite ".schema meetings"
CREATE TABLE meetings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
meeting_start TEXT NOT NULL,
meeting_end TEXT,
meeting_app TEXT NOT NULL,
title TEXT,
attendees TEXT,
detection_source TEXT NOT NULL DEFAULT 'app',
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
, note TEXT);
CREATE INDEX idx_meetings_start ON meetings(meeting_start);
CREATE INDEX idx_meetings_end ON meetings(meeting_end);
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
1|2026-04-16T07:33:44.830Z|2026-04-16T07:44:33.417Z|Slack|||ui_scan|2026-04-16T07:33:44.830Z|## typed during meeting
ststg
vstg
docker ps
--report-id
--result-id
```
```
2|2026-04-16T10:50:05.968Z|2026-04-16T10:59:54.482Z|Slack|||ui_scan|2026-04-16T10:50:05.968Z|
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40417
|
842
|
10
|
2026-04-16T16:03:09.786929+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776355389786_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
891375681754133797
|
6666628339669722916
|
visual_change
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40415
|
NULL
|
|
40661
|
860
|
7
|
2026-04-16T16:44:53.910732+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776357893910_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-8532786685220528698
|
-4006304114753475837
|
visual_change
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40683
|
860
|
20
|
2026-04-16T16:48:05.978523+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358085978_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
click
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40682
|
NULL
|
|
40684
|
861
|
13
|
2026-04-16T16:48:05.902466+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358085902_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
click
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40685
|
860
|
21
|
2026-04-16T16:48:49.374877+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358129374_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
click
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40686
|
861
|
14
|
2026-04-16T16:48:49.291969+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358129291_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
click
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40687
|
860
|
22
|
2026-04-16T16:48:50.533863+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358130533_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
visual_change
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40709
|
862
|
6
|
2026-04-16T16:49:44.036234+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358184036_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
click
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40710
|
863
|
7
|
2026-04-16T16:49:44.036267+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358184036_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
click
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40708
|
NULL
|
|
40711
|
863
|
8
|
2026-04-16T16:49:45.413170+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358185413_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
visual_change
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40712
|
862
|
7
|
2026-04-16T16:49:45.878004+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358185878_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-9045753615802921452
|
5217068197012761347
|
visual_change
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40740
|
862
|
22
|
2026-04-16T16:51:36.234273+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358296234_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"","depth":4,"value":"idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL\nidx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL\nidx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)\nidx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)\nidx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device\n ON frames(timestamp, device_name)\nidx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path\n ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL\nidx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id\n ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL\nidx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL\nidx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id\n ON frames(elements_ref_frame_id)\n WHERE elements_ref_frame_id IS NOT NULL\nidx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)\nidx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)\nidx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)\nidx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)\nidx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)\nidx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)\nidx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)\nidx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)\nidx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)\nidx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL\nidx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)\nidx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'\nidx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)\nidx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)\nidx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)\nidx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)\nidx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)\nidx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)\nidx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)\nidx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)\nidx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL\nidx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)\nidx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)\nidx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id\n ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL\nidx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)\nidx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT\n 'elements_fts' as name, COUNT(*) as rows FROM elements_fts\nUNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts\nUNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts\nUNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;\"\nelements_fts|2595462\nframes_fts|40394\nui_events_fts|51394\naudio_transcriptions_fts|3\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements_fts_data|49417125\nframes_fts_data|46211048\nui_events_fts_data|1661147\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT name, SUM(payload) as bytes\nFROM dbstat\nWHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')\nGROUP BY name;\"\nelements|334884969\nelements_fts_data|49472096\nframes|689381789\nframes_fts_data|46270876\nui_events|8354906\nui_events_fts_data|1663427\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;\"\nCREATE VIRTUAL TABLE elements_fts USING fts5(\n text,\n role,\n frame_id UNINDEXED,\n content='elements',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE frames_fts USING fts5(\n full_text,\n app_name,\n window_name,\n browser_url,\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \n id UNINDEXED,\n tokenize='unicode61'\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 1 line ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \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 [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \nCREATE VIRTUAL TABLE memories_fts USING fts5(\n content,\n tags,\n content='memories',\n content_rowid='id',\n tokenize='unicode61'\n)\nCREATE VIRTUAL TABLE ui_events_fts USING fts5(\n text_content,\n app_name,\n window_title,\n element_name,\n content='ui_events',\n content_rowid='id',\n tokenize='unicode61'\n)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls\nconfig.json\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-shm\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-09.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-13.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-16.0.log\ndata\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tdb.sqlite-wal\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-11.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-14.0.log\ndb.sqlite\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpipes\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-12.0.log\u0000\u0000\u0000\u0000\tscreenpipe.2026-04-15.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5632584\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 18:54 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.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 $ ll \ntotal 5637600\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh\nzsh: command not found: screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME\n/Users/lukas\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe\ntotal 5646848\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos \n^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell \ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n UW PICO 5.09 New Buffer \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n [ Read 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 8602592 16 Apr 19:36 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.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 25 lines ] \n^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^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 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log\n-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nzsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll\ntotal 5640560\ndrwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .\ndrwx------+ 91 lukas staff 2912 16 Apr 19:24 ..\n-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store\n-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json\ndrwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data\n-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite\n-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal\ndrwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log\n-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log\n-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log\n-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log\n-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log\n-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log\n-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh \nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nERROR: NAS not mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh \nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh\nOK: NAS mounted\nOK: Source DB exists\n2.7G\u0000\u0000\u0000\t/Users/lukas/.screenpipe/db.sqlite\nINFO: archive.db does not exist yet - will be created on first sync\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Yesterday: $DATE\"\nYesterday: 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Today: $DATE_TODAY\"\nToday: 2026-04-16\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE'\"\n1 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');\"\n886876 elements for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';\"\n14453 ui_events for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';\"\n0 meetings for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';\"\n12874 frames for 2026-04-15\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB=\"/Volumes/Test/screenpipe/archive.db\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC=\"$HOME/.screenpipe/db.sqlite\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=\"2026-04-15\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 1: creating archive.db and syncing frames...\"\nStage 1: creating archive.db and syncing frames...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\n\nCREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;\n\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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-4974011777692054841
|
5217068197012761347
|
visual_change
|
accessibility
|
NULL
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40762
|
864
|
10
|
2026-04-16T16:57:03.330896+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358623330_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-2493970611368230421
|
7673921418024372001
|
visual_change
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40761
|
NULL
|
|
40763
|
865
|
5
|
2026-04-16T16:57:30.065397+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358650065_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...","depth":4,"bounds":{"left":0.23320313,"top":0.5048611,"width":0.5566406,"height":0.49513888},"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-2493970611368230421
|
7673921418024372001
|
idle
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40764
|
864
|
11
|
2026-04-16T16:57:33.455405+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776358653455_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-2493970611368230421
|
7673921418024372001
|
idle
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40858
|
868
|
23
|
2026-04-16T17:23:48.732310+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360228732_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
2190536150403165219
|
3349339866980603701
|
visual_change
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40859
|
869
|
16
|
2026-04-16T17:24:16.291243+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360256291_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"bounds":{"left":0.23320313,"top":0.25486112,"width":0.5566406,"height":0.7451389},"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
idle
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40860
|
868
|
24
|
2026-04-16T17:24:18.820996+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360258820_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
idle
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40858
|
NULL
|
|
40861
|
868
|
25
|
2026-04-16T17:24:52.556200+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360292556_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
visual_change
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40870
|
868
|
29
|
2026-04-16T17:25:03.062347+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360303062_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
app_switch
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40871
|
868
|
30
|
2026-04-16T17:25:40.744458+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360340744_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
app_switch
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40872
|
869
|
22
|
2026-04-16T17:25:40.662169+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360340662_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"bounds":{"left":0.23320313,"top":0.22986111,"width":0.5566406,"height":0.77013886},"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
app_switch
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40877
|
868
|
33
|
2026-04-16T17:25:50.641781+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360350641_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
app_switch
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40878
|
869
|
25
|
2026-04-16T17:25:50.585+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360350585_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"bounds":{"left":0.23320313,"top":0.22986111,"width":0.5566406,"height":0.77013886},"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
app_switch
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|
|
40896
|
868
|
41
|
2026-04-16T17:32:22.675352+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360742675_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
click
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40894
|
NULL
|
|
40897
|
869
|
36
|
2026-04-16T17:32:22.781071+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360742781_m2.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"bounds":{"left":0.23320313,"top":0.22986111,"width":0.5566406,"height":0.77013886},"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.23320313,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.23554687,"top":1.0,"width":0.00625,"height":-0.039583325},"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.32539064,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.32773438,"top":1.0,"width":0.00625,"height":-0.039583325},"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.41757813,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.41992188,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5097656,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5121094,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.60195315,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.60429686,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.6941406,"top":1.0,"width":0.0921875,"height":-0.03680551},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6964844,"top":1.0,"width":0.00625,"height":-0.039583325},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7703125,"top":1.0,"width":0.021875,"height":-0.02013886},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.5046875,"top":1.0,"width":0.019140625,"height":-0.020833373},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
click
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
40893
|
NULL
|
|
40898
|
868
|
42
|
2026-04-16T17:32:24.757500+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-16/1776 /Users/lukas/.screenpipe/data/data/2026-04-16/1776360744757_m1.jpg...
|
iTerm2
|
sqlite3
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","depth":4,"value":"CREATE 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);\n\nINSERT OR IGNORE INTO nas.frames\n SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';\n\nDETACH nas;\nEOF\nsqlite3 \"$DB_SRC\" <<<\"\" 0.44s user 1.41s system 0% cpu 3:28.33 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Verifying...\"\nVerifying...\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' frames in archive' FROM frames;\"\n\n12874 frames in archive\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh \"$NAS_DB\"\n\n110M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed\ndd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100\ntime cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nrm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin\nzsh: command not found: #\n100+0 records in\n100+0 records out\n104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)\ncp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS\ntime rsync -av --progress \\\n ~/.screenpipe/archive_build.db \\\n /Volumes/Test/screenpipe/archive.db\nzsh: command not found: #\nbuilding file list ... \nrsync: link_stat \"/Users/lukas/.screenpipe/archive_build.db\" failed: No such file or directory (2)\n0 files to consider\n\nsent 29 bytes received 20 bytes 98.00 bytes/sec\ntotal size is 0 speedup is 0.00\nrsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]\nrsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 2: inserting elements (886k rows) directly to NAS...\"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;\nINSERT OR IGNORE INTO nas.elements\n SELECT e.* FROM main.elements e\n JOIN main.frames f ON e.frame_id = f.id\n WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\nsqlite3 \"$NAS_DB\" \"SELECT COUNT(*) || ' elements in archive' FROM elements;\"\ndu -sh \"$NAS_DB\"\nStage 2: inserting elements (886k rows) directly to NAS...\nsqlite3 \"$DB_SRC\" <<<\"\" 0.92s user 1.12s system 1% cpu 2:42.08 total\n886876 elements in archive\n197M\u0000\u0000\u0000\t/Volumes/Test/screenpipe/archive.db\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo \"Stage 3: syncing remaining tables...\"\n\necho -n \"ui_events... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;\nINSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"ocr_text... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;\nINSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\nDETACH nas;\nEOF\n\necho -n \"video_chunks... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;\nINSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);\nDETACH nas;\nEOF\n\necho -n \"meetings... \"\ntime sqlite3 \"$DB_SRC\" <<EOF\nATTACH '$NAS_DB' AS nas;\nCREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;\nINSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';\nDETACH nas;\nEOF\n\necho \"Verification:\"\nsqlite3 \"$NAS_DB\" \"\nSELECT 'frames' as tbl, COUNT(*) as rows FROM frames\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text\nUNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings;\"\ndu -sh \"$NAS_DB\"\nStage 3: syncing remaining tables...\nui_events... \nsqlite3 \"$DB_SRC\" <<<\"\" 0.02s user 0.05s system 1% cpu 5.578 total\nocr_text...","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.16388889,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16805555,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32777777,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33194444,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.65555555,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6597222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Review screenpipe usage and Boosteroid integration (node)","depth":2,"bounds":{"left":0.8194444,"top":0.05888889,"width":0.16388889,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82361114,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
-7188203100787558147
|
3349339866989000501
|
click
|
accessibility
|
NULL
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
NULL
|
NULL
|