### Start local transcription server on macOS Source: https://docs.screenpipe.com/meeting-transcription Install and launch the speech server on Apple Silicon using Homebrew. ```bash brew install speech speech-server --port 8080 ``` -------------------------------- ### Example Continue Queries Source: https://docs.screenpipe.com/continue Example prompts to use within the Continue interface once the MCP server is configured. ```text > @screenpipe what was I working on this morning? > find the error I saw in my terminal and help me fix it > what documentation was I reading about react hooks? ``` -------------------------------- ### Setup OpenClaw with screenpipe Source: https://docs.screenpipe.com/openclaw Run this command to automatically install screenpipe skills and register the MCP server in OpenClaw's configuration. ```bash npx -y screenpipe@latest agent setup openclaw ``` -------------------------------- ### Workflow: Find Code Examples Source: https://docs.screenpipe.com/msty Example query to search screen history for specific code patterns. ```text > search screenpipe for the python code I was looking at > in the browser yesterday about asyncio patterns ``` -------------------------------- ### Install and Enable a Pipe Source: https://docs.screenpipe.com/openclaw Use these commands to install and enable a pipe within the screenpipe application. ```bash npx -y screenpipe@latest pipe install && npx -y screenpipe@latest pipe enable ``` ```bash bunx -y screenpipe@latest pipe install && bunx -y screenpipe@latest pipe enable ``` -------------------------------- ### Start a Manual Meeting API Requests Source: https://docs.screenpipe.com/api-reference/meetings/start-a-manual-meeting Examples of how to trigger a manual meeting using various programming languages and tools. ```curl curl --request POST \ --url https://api.example.com/meetings/start \ --header 'Content-Type: application/json' \ --data ' { "app": "", "title": "", "attendees": "" } ' ``` ```python import requests url = "https://api.example.com/meetings/start" payload = { "app": "", "title": "", "attendees": "" } headers = {"Content-Type": "application/json"} response = requests.post(url, json=payload, headers=headers) print(response.text) ``` ```javascript const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({app: '', title: '', attendees: ''}) }; fetch('https://api.example.com/meetings/start', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err)); ``` ```php "https://api.example.com/meetings/start", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode([ 'app' => '', 'title' => '', 'attendees' => '' ]), CURLOPT_HTTPHEADER => [ "Content-Type: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.example.com/meetings/start" payload := strings.NewReader("{\n \"app\": \"\",\n \"title\": \"\",\n \"attendees\": \"\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` ```java HttpResponse response = Unirest.post("https://api.example.com/meetings/start") .header("Content-Type", "application/json") .body("{\n \"app\": \"\",\n \"title\": \"\",\n \"attendees\": \"\"\n}") .asString(); ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.example.com/meetings/start") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request.body = "{\n \"app\": \"\",\n \"title\": \"\",\n \"attendees\": \"\"\n}" response = http.request(request) puts response.read_body ``` -------------------------------- ### POST /audio/start Source: https://docs.screenpipe.com/cli-reference Start audio recording. ```APIDOC ## POST /audio/start ### Description Start audio recording. ### Method POST ### Endpoint /audio/start ``` -------------------------------- ### Install Linux Dependencies Source: https://docs.screenpipe.com/faq Installs required system packages for Screenpipe on Ubuntu. ```bash sudo apt install tesseract-ocr libxcb1 ``` -------------------------------- ### Install Linux Dependencies Source: https://docs.screenpipe.com/getting-started Installs required system libraries for audio and video processing on Linux distributions. ```bash sudo apt install libasound2-dev ffmpeg # ubuntu/debian sudo dnf install alsa-lib ffmpeg # fedora ``` -------------------------------- ### Start local transcription server on Linux and Windows Source: https://docs.screenpipe.com/meeting-transcription Download models and start the transcription server on non-macOS platforms. ```bash # Linux speech download-models speech serve ``` ```powershell # Windows PowerShell, from the extracted package's bin directory .\speech_download_models.ps1 .\speech-server.exe ``` -------------------------------- ### GET /pipes Source: https://docs.screenpipe.com/pipes Retrieve a list of all installed pipes. ```APIDOC ## GET /pipes ### Description List all installed pipes. ### Method GET ### Endpoint http://localhost:3030/pipes ``` -------------------------------- ### POST /audio/start Source: https://docs.screenpipe.com/api-reference/audio/start-audio-recording Starts the audio recording process on the local Screenpipe server. ```APIDOC ## POST /audio/start ### Description Starts audio recording on the local Screenpipe instance. ### Method POST ### Endpoint /audio/start ### Response #### Success Response (200) - **OK** (object) - The recording has been successfully started. ``` -------------------------------- ### Start a Manual Meeting in Go Source: https://docs.screenpipe.com/api-reference/meetings/start-a-manual-meeting Uses the standard net/http library to send a POST request to the meeting start endpoint. ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.example.com/meetings/start" payload := strings.NewReader("{\n \"app\": \"\",\n \"title\": \"\",\n \"attendees\": \"\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(string(body)) } ``` -------------------------------- ### Start Screenpipe Recording Source: https://docs.screenpipe.com/copilot-cli Initializes the Screenpipe recording process in the terminal. ```bash npx -y screenpipe@latest record ``` -------------------------------- ### POST /pipes/install Source: https://docs.screenpipe.com/pipes Installs a new pipe from a local directory path. ```APIDOC ## POST /pipes/install ### Description Installs a pipe from the specified source directory. ### Method POST ### Endpoint http://localhost:3030/pipes/install ### Request Body - **source** (string) - Required - Path to the pipe directory ### Request Example curl -X POST http://localhost:3030/pipes/install -H "Authorization: Bearer $SCREENPIPE_LOCAL_API_KEY" -H "Content-Type: application/json" -d '{"source": "~/.screenpipe/pipes/my-pipe"}' ``` -------------------------------- ### Example Workflows Source: https://docs.screenpipe.com/continue Specific use cases for leveraging screen context in coding tasks. ```text > I was looking at how another project handles authentication, > find that code and help me implement something similar ``` ```text > there was a typescript error earlier about types, > find it and explain how to fix it ``` ```text > what did we discuss in the standup about the API changes? > help me implement those changes ``` -------------------------------- ### POST /pipes/install Source: https://docs.screenpipe.com/pipes Install a new pipe from a remote URL. ```APIDOC ## POST /pipes/install ### Description Install a pipe from a provided source URL. ### Method POST ### Endpoint http://localhost:3030/pipes/install ### Parameters #### Request Body - **source** (string) - Required - The URL pointing to the pipe definition file. ``` -------------------------------- ### Cline Usage Examples Source: https://docs.screenpipe.com/cline Example prompts for querying screen history and terminal logs within the Cline interface. ```text > I was reading documentation about async/await patterns earlier, > find it and help me apply those patterns here > what error messages have I seen in my terminal today? > find the API response format I was looking at in the browser ``` -------------------------------- ### Start Audio Recording OpenAPI Specification Source: https://docs.screenpipe.com/api-reference/audio/start-audio-recording Defines the POST endpoint for starting audio recording within the Screenpipe API. ```yaml openapi: 3.0.3 info: title: Screenpipe API version: 1.0.0 description: >- Screenpipe captures everything you see, say, and hear on your computer. Use this API to search through captured content, manage recordings, and build AI-powered automations on top of your screen data. The server runs locally at `http://localhost:3030` by default. servers: [] security: [] tags: - name: Search description: Search through captured screen and audio content - name: Frames description: Access captured screenshots and their extracted text - name: Elements description: Query captured UI accessibility tree data - name: Audio description: Manage audio recording devices - name: Vision description: Manage screen capture monitors - name: Meetings description: Detected and manual meeting transcriptions - name: Speakers description: Speaker identification and management - name: Memories description: AI-extracted knowledge from screen activity - name: Tags description: Tag content items for organization - name: Activity description: Activity summaries and analytics - name: Vault description: Encrypt/decrypt all data at rest - name: Cloud Sync description: Sync data across devices via cloud - name: Cloud Archive description: Archive old data to cloud storage - name: Data Retention description: Auto-delete old data locally - name: Data Management description: Manual data deletion and storage info - name: Database description: Direct database access - name: System description: Health checks and system status - name: Experimental description: Experimental/unstable endpoints paths: /audio/start: post: tags: - Audio summary: Start audio recording operationId: routes_audio_start_audio responses: '200': description: OK content: application/json: schema: {} ``` -------------------------------- ### POST /audio/device/start Source: https://docs.screenpipe.com/api-reference/audio/start-recording-a-specific-audio-device Starts recording from a specific audio device identified by its name. ```APIDOC ## POST /audio/device/start ### Description Starts recording a specific audio device. ### Method POST ### Endpoint /audio/device/start ### Request Body - **device_name** (string) - Required - The name of the audio device to start recording. ### Request Example { "device_name": "string" } ### Response #### Success Response (200) - **success** (boolean) - Indicates if the operation was successful. - **message** (string) - A message describing the result of the operation. #### Response Example { "success": true, "message": "string" } ``` -------------------------------- ### Install pi-agent via CLI Source: https://docs.screenpipe.com/faq Use this command to manually install or update the pi-agent runtime when it is missing or failing. ```bash npx -y screenpipe@latest pipe install pi-agent ``` -------------------------------- ### Msty Usage Examples Source: https://docs.screenpipe.com/msty Example natural language queries for Msty to search screen history and terminal activity. ```text > what was I working on this morning? > find that documentation about async/await patterns I was reading earlier > what error messages have I seen in my terminal today? > search for the API response format I was looking at in the browser ``` -------------------------------- ### Setup other agents with screenpipe Source: https://docs.screenpipe.com/openclaw Use the same command structure to wire up other supported agents. ```bash npx -y screenpipe@latest agent setup ``` -------------------------------- ### Configure Intune Install and Uninstall Commands Source: https://docs.screenpipe.com/intune-deployment Use these commands in the Intune Win32 app configuration to handle silent installation and uninstallation of the Screenpipe enterprise package. ```bash powershell.exe -ExecutionPolicy Bypass -File install-screenpipe-enterprise.ps1 ``` ```bash "%ProgramFiles%\screenpipe\uninstall.exe" /S ``` -------------------------------- ### Workflow: Recall Context Source: https://docs.screenpipe.com/msty Example query to search screen history for specific topics. ```text > I was reading a blog post about rust macros earlier today, > search screenpipe and summarize the key points ``` -------------------------------- ### Context recall workflow Source: https://docs.screenpipe.com/copilot-cli Example of searching and summarizing specific topics from earlier activity. ```text > I was reading a blog post about rust async earlier today, > search screenpipe and summarize the key points ``` -------------------------------- ### GET /search Source: https://docs.screenpipe.com/api-reference/search/search-screen-and-audio-content Search for screen and audio content based on query parameters. ```APIDOC ## GET /search ### Description Searches through captured screen and audio data. Results can be filtered by content type, device name, and machine ID. ### Method GET ### Endpoint /search ### Parameters #### Query Parameters - **q** (string) - Optional - The search query string. - **content_type** (string) - Optional - Filter by content type (all, ocr, audio, input, accessibility, memory). - **device_name** (string) - Optional - Filter by device name. - **machine_id** (string) - Optional - Filter by machine ID. ### Response #### Success Response (200) - **data** (array) - List of content items found. - **pagination** (object) - Pagination metadata. - **cloud** (object) - Cloud search metadata. ``` -------------------------------- ### GET /audio/list Source: https://docs.screenpipe.com/api-reference/audio/list-audio-devices Retrieves a list of all available audio input and output devices. ```APIDOC ## GET /audio/list ### Description Returns all available audio input and output devices. ### Method GET ### Endpoint /audio/list ### Response #### Success Response (200) - **name** (string) - The name of the audio device. - **is_default** (boolean) - Indicates if the device is the system default. #### Response Example [ { "name": "Microphone (Built-in)", "is_default": true }, { "name": "Speakers (External)", "is_default": false } ] ``` -------------------------------- ### Example Context-Aware Workflows Source: https://docs.screenpipe.com/gemini-cli Sample prompts demonstrating how to leverage screen history for coding tasks, debugging, and documentation recall. ```text > I was looking at a react component earlier that handled > form validation, find it and help me implement something similar ``` ```text > there was an error in my build output, find it and help me fix it ``` ```text > what did that API documentation say about rate limits? ``` -------------------------------- ### Create and initialize a new pipe Source: https://docs.screenpipe.com/pipes Create a directory and a pipe.md configuration file, then install and test the pipe using the CLI. ```bash mkdir -p ~/.screenpipe/pipes/my-pipe cat > ~/.screenpipe/pipes/my-pipe/pipe.md << 'EOF' --- schedule: every 30m enabled: true --- Summarize my screen activity for the last 30 minutes. Query screenpipe at http://localhost:3030/search using the time range from the context header. Authenticate with the SCREENPIPE_LOCAL_API_KEY environment variable. Write the summary to ./output/.md EOF # install + enable + test it from the CLI (no install needed — npx / bunx / bun x all work): npx -y screenpipe@latest pipe install ~/.screenpipe/pipes/my-pipe npx -y screenpipe@latest pipe enable my-pipe npx -y screenpipe@latest pipe run my-pipe # run once now to test # # (or use the desktop app: Pipes → My Pipes — or the authenticated REST API) ``` -------------------------------- ### GET /frames/{id}/metadata Source: https://docs.screenpipe.com/cli-reference Get frame metadata. ```APIDOC ## GET /frames/{id}/metadata ### Description Get frame metadata. ### Method GET ### Endpoint /frames/{id}/metadata ### Parameters #### Path Parameters - **id** (string) - Required - The frame identifier ``` -------------------------------- ### Install and run Ollama model Source: https://docs.screenpipe.com/ollama Initializes the Ollama service and downloads the specified model for local execution. ```bash # install from https://ollama.com then: ollama run llama3.2 ``` -------------------------------- ### GET /frames/{id}/elements Source: https://docs.screenpipe.com/cli-reference Get UI elements for a frame. ```APIDOC ## GET /frames/{id}/elements ### Description Get UI elements for a frame. ### Method GET ### Endpoint /frames/{id}/elements ### Parameters #### Path Parameters - **id** (string) - Required - The frame identifier ``` -------------------------------- ### GET /frames/{id}/context Source: https://docs.screenpipe.com/cli-reference Get surrounding accessibility context for a frame. ```APIDOC ## GET /frames/{id}/context ### Description Get surrounding accessibility context for a frame. ### Method GET ### Endpoint /frames/{id}/context ### Parameters #### Path Parameters - **id** (string) - Required - The frame identifier ``` -------------------------------- ### POST /sync/init Source: https://docs.screenpipe.com/api-reference/cloud-sync/initialize-cloud-sync Initializes cloud synchronization at runtime with the required credentials and configuration. ```APIDOC ## POST /sync/init ### Description Initialize sync at runtime with credentials. ### Method POST ### Endpoint /sync/init ### Request Body - **token** (string) - Required - The authentication token. - **password** (string) - Required - The user password. - **machine_id** (string) - Required - The unique identifier for the machine. - **sync_interval_secs** (integer) - Required - The interval in seconds for synchronization. ### Request Example { "token": "string", "password": "string", "machine_id": "string", "sync_interval_secs": 0 } ### Response #### Success Response (200) - **success** (boolean) - Indicates if the initialization was successful. - **is_new_user** (boolean) - Indicates if the user is new. - **machine_id** (string) - The machine identifier associated with the sync. #### Response Example { "success": true, "is_new_user": true, "machine_id": "string" } ``` -------------------------------- ### POST /vault/setup Source: https://docs.screenpipe.com/api-reference/vault/set-up-vault Initializes the vault for data encryption at rest. ```APIDOC ## POST /vault/setup ### Description Initializes the vault for data encryption at rest. ### Method POST ### Endpoint /vault/setup ### Request Body - **password** (string) - Required - The password used to set up the vault. ### Request Example { "password": "your-secure-password" } ### Response #### Success Response (200) - **object** (object) - The response object confirming the vault setup. ``` -------------------------------- ### List Installed Pipes Source: https://docs.screenpipe.com/pipe-debugging Confirms that a specific pipe is correctly installed and enabled in the system. ```bash curl http://localhost:3030/pipes ``` -------------------------------- ### OpenAPI Specification for Get Archive Status Source: https://docs.screenpipe.com/api-reference/cloud-archive/get-archive-status Defines the GET /archive/status endpoint and the ArchiveStatusResponse schema. ```yaml openapi: 3.0.3 info: title: Screenpipe API version: 1.0.0 description: >- Screenpipe captures everything you see, say, and hear on your computer. Use this API to search through captured content, manage recordings, and build AI-powered automations on top of your screen data. The server runs locally at `http://localhost:3030` by default. servers: [] security: [] tags: - name: Search description: Search through captured screen and audio content - name: Frames description: Access captured screenshots and their extracted text - name: Elements description: Query captured UI accessibility tree data - name: Audio description: Manage audio recording devices - name: Vision description: Manage screen capture monitors - name: Meetings description: Detected and manual meeting transcriptions - name: Speakers description: Speaker identification and management - name: Memories description: AI-extracted knowledge from screen activity - name: Tags description: Tag content items for organization - name: Activity description: Activity summaries and analytics - name: Vault description: Encrypt/decrypt all data at rest - name: Cloud Sync description: Sync data across devices via cloud - name: Cloud Archive description: Archive old data to cloud storage - name: Data Retention description: Auto-delete old data locally - name: Data Management description: Manual data deletion and storage info - name: Database description: Direct database access - name: System description: Health checks and system status - name: Experimental description: Experimental/unstable endpoints paths: /archive/status: get: tags: - Cloud Archive summary: Get archive status description: GET /archive/status — return current state. operationId: archive_archive_status responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ArchiveStatusResponse' components: schemas: ArchiveStatusResponse: type: object properties: enabled: type: boolean retention_days: type: integer watermark: nullable: true type: string last_cleanup: nullable: true type: string last_error: nullable: true type: string storage_used: type: integer storage_limit: type: integer pending_count: type: integer is_uploading: type: boolean chunks_uploaded: type: integer media_files_uploaded: type: integer media_files_pending: type: integer required: - enabled - retention_days - watermark - last_cleanup - last_error - storage_used - storage_limit - pending_count - is_uploading - chunks_uploaded - media_files_uploaded - media_files_pending ``` -------------------------------- ### Start Screenpipe with LAN access Source: https://docs.screenpipe.com/search-screen-history Use this command to bind the server to 0.0.0.0, allowing access from other devices on the local network. ```bash npx -y screenpipe@latest --listen-on-lan ``` -------------------------------- ### Install and Enable Second Brain Pipe Source: https://docs.screenpipe.com/second-brain Commands to install and enable the second-brain pipe within the Screenpipe environment. ```bash npx -y screenpipe@latest pipe install ~/.screenpipe/pipes/second-brain && npx -y screenpipe@latest pipe enable second-brain ``` -------------------------------- ### Compare Prompt Quality Source: https://docs.screenpipe.com/pipe-debugging Examples of weak versus strong prompt structures for better output control. ```markdown Tell me what I did today. ``` ```markdown Search the last 24 hours of screenpipe data. Write a markdown summary to ~/Documents/daily-screenpipe-summary.md. Include: - accomplishments - meetings - open loops - timeline links for the 5 most important moments If there is no data, say which API call returned empty. ``` -------------------------------- ### OpenAPI Specification for Get Frame Context Source: https://docs.screenpipe.com/api-reference/frames/get-frame-context Defines the GET endpoint for retrieving frame context, including the request parameter and the response schema. ```yaml openapi: 3.0.3 info: title: Screenpipe API version: 1.0.0 description: >- Screenpipe captures everything you see, say, and hear on your computer. Use this API to search through captured content, manage recordings, and build AI-powered automations on top of your screen data. The server runs locally at `http://localhost:3030` by default. servers: [] security: [] tags: - name: Search description: Search through captured screen and audio content - name: Frames description: Access captured screenshots and their extracted text - name: Elements description: Query captured UI accessibility tree data - name: Audio description: Manage audio recording devices - name: Vision description: Manage screen capture monitors - name: Meetings description: Detected and manual meeting transcriptions - name: Speakers description: Speaker identification and management - name: Memories description: AI-extracted knowledge from screen activity - name: Tags description: Tag content items for organization - name: Activity description: Activity summaries and analytics - name: Vault description: Encrypt/decrypt all data at rest - name: Cloud Sync description: Sync data across devices via cloud - name: Cloud Archive description: Archive old data to cloud storage - name: Data Retention description: Auto-delete old data locally - name: Data Management description: Manual data deletion and storage info - name: Database description: Direct database access - name: System description: Health checks and system status - name: Experimental description: Experimental/unstable endpoints paths: /frames/{frame_id}/context: get: tags: - Frames summary: Get frame context description: |- Get frame context: accessibility text, tree nodes, and extracted URLs. Falls back to OCR data for legacy frames without accessibility data. operationId: routes_frames_get_frame_context parameters: - name: frame_id schema: type: integer in: path required: true style: simple responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FrameContextResponse' components: schemas: FrameContextResponse: description: >- Response type for frame context endpoint (accessibility-first, OCR fallback) type: object properties: frame_id: type: integer text: nullable: true type: string nodes: type: array items: $ref: '#/components/schemas/AccessibilityNode' urls: type: array items: type: string text_source: type: string required: - frame_id - text - nodes - urls - text_source AccessibilityNode: description: A node from the accessibility tree type: object properties: role: type: string text: type: string depth: type: integer bounds: $ref: '#/components/schemas/AccessibilityNodeBounds' properties: nullable: true type: object required: - role - text - depth AccessibilityNodeBounds: description: Bounding box for an accessibility node (0-1 normalized to monitor) type: object properties: left: type: number top: type: number width: type: number height: type: number required: - left - top - width - height ``` -------------------------------- ### POST /add Source: https://docs.screenpipe.com/api-reference/database/add-content-to-database Manually insert screen or audio content into the database. ```APIDOC ## POST /add ### Description Manually insert screen or audio content into the database. ### Method POST ### Endpoint /add ### Request Body - **device_name** (string) - Required - The name of the device. - **content** (object) - Required - The content data to be added. ### Response #### Success Response (200) - **success** (boolean) - Indicates if the operation was successful. - **message** (string) - A message regarding the operation status. ``` -------------------------------- ### Start Screenpipe HTTP MCP Server Source: https://docs.screenpipe.com/msty Run this command in your terminal to start the Screenpipe MCP server in HTTP mode on port 3031. ```bash npx -y screenpipe-mcp-http --port 3031 ``` -------------------------------- ### OpenAPI definition for Get frame metadata Source: https://docs.screenpipe.com/api-reference/frames/get-frame-metadata The OpenAPI specification for the GET /frames/{frame_id}/metadata endpoint, including the response schema for frame metadata. ```yaml openapi: 3.0.3 info: title: Screenpipe API version: 1.0.0 description: >- Screenpipe captures everything you see, say, and hear on your computer. Use this API to search through captured content, manage recordings, and build AI-powered automations on top of your screen data. The server runs locally at `http://localhost:3030` by default. servers: [] security: [] tags: - name: Search description: Search through captured screen and audio content - name: Frames description: Access captured screenshots and their extracted text - name: Elements description: Query captured UI accessibility tree data - name: Audio description: Manage audio recording devices - name: Vision description: Manage screen capture monitors - name: Meetings description: Detected and manual meeting transcriptions - name: Speakers description: Speaker identification and management - name: Memories description: AI-extracted knowledge from screen activity - name: Tags description: Tag content items for organization - name: Activity description: Activity summaries and analytics - name: Vault description: Encrypt/decrypt all data at rest - name: Cloud Sync description: Sync data across devices via cloud - name: Cloud Archive description: Archive old data to cloud storage - name: Data Retention description: Auto-delete old data locally - name: Data Management description: Manual data deletion and storage info - name: Database description: Direct database access - name: System description: Health checks and system status - name: Experimental description: Experimental/unstable endpoints paths: /frames/{frame_id}/metadata: get: tags: - Frames summary: Get frame metadata description: >- Get frame metadata (timestamp) for deep link navigation. screenpipe://frame/123 → resolve to timestamp. operationId: routes_frames_get_frame_metadata parameters: - name: frame_id schema: type: integer in: path required: true style: simple responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FrameMetadataResponse' components: schemas: FrameMetadataResponse: description: Response type for frame metadata (used by deep link navigation) type: object properties: frame_id: type: integer timestamp: type: string format: date-time required: - frame_id - timestamp ``` -------------------------------- ### Build Screenpipe MCP from source Source: https://docs.screenpipe.com/mcp-server Clone the repository and build the package to use a local version of the MCP server. ```bash git clone https://github.com/screenpipe/screenpipe cd screenpipe/packages/screenpipe-mcp npm install && npm run build ``` -------------------------------- ### OpenAPI definition for get frame text and bounds Source: https://docs.screenpipe.com/api-reference/frames/get-frame-text-and-bounds Defines the GET /frames/{frame_id}/text endpoint and the associated response schemas for text positions and bounds. ```yaml openapi: 3.0.3 info: title: Screenpipe API version: 1.0.0 description: >- Screenpipe captures everything you see, say, and hear on your computer. Use this API to search through captured content, manage recordings, and build AI-powered automations on top of your screen data. The server runs locally at `http://localhost:3030` by default. servers: [] security: [] tags: - name: Search description: Search through captured screen and audio content - name: Frames description: Access captured screenshots and their extracted text - name: Elements description: Query captured UI accessibility tree data - name: Audio description: Manage audio recording devices - name: Vision description: Manage screen capture monitors - name: Meetings description: Detected and manual meeting transcriptions - name: Speakers description: Speaker identification and management - name: Memories description: AI-extracted knowledge from screen activity - name: Tags description: Tag content items for organization - name: Activity description: Activity summaries and analytics - name: Vault description: Encrypt/decrypt all data at rest - name: Cloud Sync description: Sync data across devices via cloud - name: Cloud Archive description: Archive old data to cloud storage - name: Data Retention description: Auto-delete old data locally - name: Data Management description: Manual data deletion and storage info - name: Database description: Direct database access - name: System description: Health checks and system status - name: Experimental description: Experimental/unstable endpoints paths: /frames/{frame_id}/text: get: tags: - Frames summary: Get frame text and bounds description: >- Get frame text positions with bounding boxes for a specific frame. Uses accessibility tree node bounds when available, and OCR fallback positions for visual-only or legacy frames. Both OCR and accessibility bounds are normalized to 0-1 relative to the monitor (full-screen capture), so they align correctly with the screenshot. operationId: routes_frames_get_frame_text_data parameters: - name: frame_id schema: type: integer in: path required: true style: simple - name: query schema: nullable: true type: string in: query style: form responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FrameTextResponse' components: schemas: FrameTextResponse: description: Response type for frame OCR data endpoint type: object properties: frame_id: type: integer text_positions: type: array items: $ref: '#/components/schemas/TextPosition' required: - frame_id - text_positions TextPosition: type: object properties: text: type: string confidence: type: number bounds: $ref: '#/components/schemas/TextBounds' required: - text - confidence - bounds TextBounds: type: object properties: left: type: number top: type: number width: type: number height: type: number required: - left - top - width - height ``` -------------------------------- ### Start a Manual Meeting in Ruby Source: https://docs.screenpipe.com/api-reference/meetings/start-a-manual-meeting Uses the Net::HTTP library to initiate a POST request with SSL enabled. ```ruby require 'uri' require 'net/http' url = URI("https://api.example.com/meetings/start") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request.body = "{\n \"app\": \"\",\n \"title\": \"\",\n \"attendees\": \"\"\n}" response = http.request(request) puts response.read_body ``` -------------------------------- ### OpenAPI Specification for Get Frame by ID Source: https://docs.screenpipe.com/api-reference/frames/get-frame-by-id Defines the GET /frames/{frame_id} endpoint within the Screenpipe API, specifying the required frame_id parameter and the operation ID. ```yaml openapi: 3.0.3 info: title: Screenpipe API version: 1.0.0 description: >- Screenpipe captures everything you see, say, and hear on your computer. Use this API to search through captured content, manage recordings, and build AI-powered automations on top of your screen data. The server runs locally at `http://localhost:3030` by default. servers: [] security: [] tags: - name: Search description: Search through captured screen and audio content - name: Frames description: Access captured screenshots and their extracted text - name: Elements description: Query captured UI accessibility tree data - name: Audio description: Manage audio recording devices - name: Vision description: Manage screen capture monitors - name: Meetings description: Detected and manual meeting transcriptions - name: Speakers description: Speaker identification and management - name: Memories description: AI-extracted knowledge from screen activity - name: Tags description: Tag content items for organization - name: Activity description: Activity summaries and analytics - name: Vault description: Encrypt/decrypt all data at rest - name: Cloud Sync description: Sync data across devices via cloud - name: Cloud Archive description: Archive old data to cloud storage - name: Data Retention description: Auto-delete old data locally - name: Data Management description: Manual data deletion and storage info - name: Database description: Direct database access - name: System description: Health checks and system status - name: Experimental description: Experimental/unstable endpoints paths: /frames/{frame_id}: get: tags: - Frames summary: Get frame by ID description: Returns a captured screenshot frame with optional base64 image data. operationId: routes_frames_get_frame_data parameters: - name: frame_id schema: type: integer in: path required: true style: simple responses: '200': description: OK content: application/json: schema: {} ``` -------------------------------- ### Example Workflow Queries Source: https://docs.screenpipe.com/claude-code Natural language prompts for Claude Code to interact with Screenpipe data. ```text > I was reading a blog post about rust async earlier today, > search screenpipe and summarize the key points ``` ```text > search my audio transcriptions for what was discussed in standup > about the API refactor, then help me implement it ``` ```text > I saw an error message flash on screen, search screenpipe > to find it and help me fix the issue ``` ```text > search screenpipe for the python code I was looking at > in the browser yesterday about asyncio patterns ``` ```text > what did I write in Notion this morning? search for my > keyboard input using content_type=input ``` ```text > I copied something important earlier, search clipboard > events to find it ``` -------------------------------- ### GET /meetings Source: https://docs.screenpipe.com/cli-reference List all meetings. ```APIDOC ## GET /meetings ### Description List all meetings. ### Method GET ### Endpoint /meetings ``` -------------------------------- ### GET /search/keyword Source: https://docs.screenpipe.com/cli-reference Perform a keyword search. ```APIDOC ## GET /search/keyword ### Description Perform a keyword search. ### Method GET ### Endpoint /search/keyword ``` -------------------------------- ### Query Gemini CLI with Screen Context Source: https://docs.screenpipe.com/gemini-cli Example prompts for interacting with Gemini CLI after configuring the screenpipe MCP server. ```bash gemini > what was I working on this morning? > find the error message I saw in my terminal earlier > summarize the documentation I was reading about kubernetes ``` -------------------------------- ### GET /health Source: https://docs.screenpipe.com/cli-reference Perform a server health check. ```APIDOC ## GET /health ### Description Perform a server health check. ### Method GET ### Endpoint /health ``` -------------------------------- ### OpenAPI definition for starting an audio device Source: https://docs.screenpipe.com/api-reference/audio/start-recording-a-specific-audio-device Defines the POST request structure for the /audio/device/start endpoint, requiring a device_name in the request body. ```yaml openapi: 3.0.3 info: title: Screenpipe API version: 1.0.0 description: >- Screenpipe captures everything you see, say, and hear on your computer. Use this API to search through captured content, manage recordings, and build AI-powered automations on top of your screen data. The server runs locally at `http://localhost:3030` by default. servers: [] security: [] tags: - name: Search description: Search through captured screen and audio content - name: Frames description: Access captured screenshots and their extracted text - name: Elements description: Query captured UI accessibility tree data - name: Audio description: Manage audio recording devices - name: Vision description: Manage screen capture monitors - name: Meetings description: Detected and manual meeting transcriptions - name: Speakers description: Speaker identification and management - name: Memories description: AI-extracted knowledge from screen activity - name: Tags description: Tag content items for organization - name: Activity description: Activity summaries and analytics - name: Vault description: Encrypt/decrypt all data at rest - name: Cloud Sync description: Sync data across devices via cloud - name: Cloud Archive description: Archive old data to cloud storage - name: Data Retention description: Auto-delete old data locally - name: Data Management description: Manual data deletion and storage info - name: Database description: Direct database access - name: System description: Health checks and system status - name: Experimental description: Experimental/unstable endpoints paths: /audio/device/start: post: tags: - Audio summary: Start recording a specific audio device operationId: routes_audio_start_audio_device requestBody: content: application/json: schema: $ref: '#/components/schemas/AudioDeviceControlRequest' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AudioDeviceControlResponse' components: schemas: AudioDeviceControlRequest: type: object properties: device_name: type: string required: - device_name AudioDeviceControlResponse: type: object properties: success: type: boolean message: type: string required: - success - message ``` -------------------------------- ### Configure Screenpipe MCP in Continue Source: https://docs.screenpipe.com/continue Add the Screenpipe MCP server to your Continue configuration file to enable screen context access. ```json { "mcpServers": [ { "name": "screenpipe", "command": "npx", "args": ["-y", "screenpipe-mcp"] } ] } ``` -------------------------------- ### GET /elements Source: https://docs.screenpipe.com/cli-reference Search structured UI elements. ```APIDOC ## GET /elements ### Description Search structured UI elements. ### Method GET ### Endpoint /elements ``` -------------------------------- ### GET /connections/imap/mailboxes Source: https://docs.screenpipe.com/connection-reference List available IMAP mailboxes. ```APIDOC ## GET /connections/imap/mailboxes ### Description List all available mailboxes for the connected IMAP account. ### Method GET ### Endpoint /connections/imap/mailboxes ``` -------------------------------- ### Install screenpipe skills at project level Source: https://docs.screenpipe.com/opencode Copies screenpipe agent skills into the local project directory for OpenCode discovery. ```bash # copy to current project mkdir -p .opencode/skills cp -r /path/to/screenpipe/.claude/agents/* .opencode/skills/ ``` -------------------------------- ### GET /connections/imap/messages Source: https://docs.screenpipe.com/connection-reference Retrieve messages from the IMAP inbox. ```APIDOC ## GET /connections/imap/messages ### Description Retrieve a list of messages from the connected IMAP inbox. ### Method GET ### Endpoint /connections/imap/messages ### Parameters #### Query Parameters - **limit** (integer) - Optional - The number of messages to retrieve. ``` -------------------------------- ### Plan Mode Context Query Source: https://docs.screenpipe.com/cline Example prompt for utilizing Plan mode to retrieve research context from screen history. ```text > [Plan mode] I was researching authentication patterns earlier, > find what I was looking at and plan how to implement it here ``` -------------------------------- ### GET /memories Source: https://docs.screenpipe.com/api-recipes Retrieve a list of durable memories. ```APIDOC ## GET /memories ### Description Retrieve a list of durable notes that AI workflows can search later. ### Method GET ### Endpoint /memories ### Parameters #### Query Parameters - **limit** (integer) - Optional - The number of memories to return. ``` -------------------------------- ### POST /archive/init Source: https://docs.screenpipe.com/api-reference/cloud-archive/initialize-cloud-archive Initializes the cloud archive system by providing an authentication token and retention settings. ```APIDOC ## POST /archive/init ### Description Initializes the cloud archive system for data management. ### Method POST ### Endpoint /archive/init ### Request Body - **token** (string) - Required - Authentication token for the archive service. - **retention_days** (integer) - Required - Number of days to retain data before archiving. ### Request Example { "token": "your-auth-token", "retention_days": 30 } ### Response #### Success Response (200) - **success** (boolean) - Indicates if the initialization was successful. - **machine_id** (string) - The unique identifier for the machine being initialized. #### Response Example { "success": true, "machine_id": "example-machine-id" } ```