meeting notes
transcribe meetings + extract action items automatically
AI agents that run on your screen data. install in one click — just copy the prompt and paste into claude code.
transcribe meetings + extract action items automatically
end-of-day summary of everything you worked on
auto-log time based on app usage
transcribe meetings + extract action items automatically
end-of-day summary of everything you worked on
sync screen activity to your obsidian vault as daily logs
scan screen for action items → create Apple Reminders
generate daily standup from yesterday's screen activity
auto-log time based on app usage
alert if distracted for too long on social media
surface startup ideas from your browsing + market trends
track what you read and learned across the web
draft follow-up emails from meeting context
create a screenpipe pipe that [DESCRIBE WHAT YOU WANT].
## what is screenpipe?
screenpipe is a desktop app that continuously records your screen (OCR) and audio (transcription).
it runs a local API at http://localhost:3030 that lets you query everything you've seen, said, or heard.
## what is a pipe?
a pipe is a scheduled AI agent defined as a single markdown file: ~/.screenpipe/pipes/{name}/pipe.md
every N minutes, screenpipe runs a coding agent (like pi or claude-code) with the pipe's prompt.
the agent can query your screen data, write files, call external APIs, send notifications, etc.
## pipe.md format
the file starts with YAML frontmatter, then the prompt body. only schedule and enabled are needed:
---
schedule: every 30m
enabled: true
---
Your prompt instructions here...
schedule supports: "every 30m", "every 2h", "daily", cron ("0 */2 * * *"), or "manual".
## context header
before execution, screenpipe prepends a context header to the prompt with:
- time range (start/end ISO 8601 timestamps based on the schedule interval)
- current date, timezone
- screenpipe API base URL (http://localhost:3030)
- output directory (./output/)
the AI agent uses this context to query the right time range. no template variables needed — just write plain instructions.
## screenpipe search API
the agent queries screen data via the local REST API:
curl "http://localhost:3030/search?limit=20&content_type=all&start_time=<ISO8601>&end_time=<ISO8601>"
### query parameters
- q: text search query (optional)
- content_type: "vision" | "audio" | "input" | "accessibility" | "all" | "vision+audio+input" | "vision+input" | "audio+input"
- limit: max results (default 20)
- offset: pagination offset
- start_time / end_time: ISO 8601 timestamps
- app_name: filter by app (e.g. "chrome", "cursor")
- window_name: filter by window title
- browser_url: filter by URL (e.g. "github.com")
- min_length / max_length: filter by text length
- speaker_ids: filter audio by speaker IDs
### vision results (what was on screen)
each result contains:
- text: the extracted text visible on screen
- app_name: which app was active (e.g. "Arc", "Cursor", "Slack")
- window_name: the window title
- browser_url: the URL if it was a browser
- timestamp: when it was captured
- file_path: path to the video frame
- focused: whether the window was focused
### audio results (what was said/heard)
each result contains:
- transcription: the spoken text
- speaker_id: numeric speaker identifier
- timestamp: when it was captured
- device_name: which audio device (mic or system audio)
- device_type: "input" (microphone) or "output" (system audio)
### accessibility results (accessibility tree text)
each result contains:
- text: text from the accessibility tree
- app_name: which app was active
- window_name: the window title
- timestamp: when it was captured
### input results (user actions)
query via: curl "http://localhost:3030/ui-events?app_name=Slack&limit=50&start_time=<ISO8601>&end_time=<ISO8601>"
event types: text (keyboard input), click, app_switch, window_focus, clipboard, scroll
## secrets
store API keys in a .env file next to pipe.md (never in the prompt itself):
echo "API_KEY=your_key" > ~/.screenpipe/pipes/my-pipe/.env
reference in prompt: source .env && curl -H "Authorization: Bearer $API_KEY" ...
## after creating the file
install: bunx screenpipe pipe install ~/.screenpipe/pipes/my-pipe
enable: bunx screenpipe pipe enable my-pipe
test: bunx screenpipe pipe run my-pipe
logs: bunx screenpipe pipe logs my-pipereplace [DESCRIBE WHAT YOU WANT] with your use case. the AI will create the pipe.md file for you.
pipes require screenpipe running locally.