The app calls these Scheduled tasks. The CLI command
screenpipe pipe, local API paths under /pipes, and configuration file pipe.md retain their technical names. Use those exact identifiers in commands and configuration.Browse and install community scheduled tasks
To find and install scheduled tasks others have made:- Open Scheduled tasks in Screenpipe
- Click the Discover tab at the top
- Browse featured and community scheduled tasks, or search for a specific one
- Click GET to install any scheduled task
- Open My tasks to run it, enable it, and configure the trigger
Create a task in the app
Open Scheduled tasks → My tasks. If you already have tasks, click NEW to open the new scheduled task form. With an empty list, choose an example or describe the result you want. Review the generated prompt, output location, provider, and trigger before enabling automatic runs. A scheduled task can run on a time schedule, after a meeting, or when a supported event happens. You can also run it manually. Start with a manual test and verify the saved result before enabling its trigger.Build a task with a coding assistant
Copy this prompt into Claude Code, cursor, or any AI coding assistant:[DESCRIBE WHAT YOU WANT] with your use case — e.g. “tracks my time in Toggl based on what apps I’m using”, “writes daily summaries to Obsidian”, “sends me a Slack message if I’ve been on twitter for more than 30 minutes”.
What are scheduled tasks?
Scheduled tasks are automated workflows that run on your Screenpipe data at regular intervals. Each scheduled task is a markdown file with a prompt and a schedule. Under the hood, Screenpipe runs a coding agent (like pi) that can query your screen data, call APIs, write files, and take actions.Use chat, MCP, or a scheduled task?
A scheduled task is just one file:
pipe.md
Creating a scheduled task
Create a folder in~/.screenpipe/pipes/ with a pipe.md file:
Manage scheduled tasks from the CLI
Every scheduled task action is available from the CLI — no separate install.npx -y screenpipe@latest, bunx screenpipe@latest, and bun x screenpipe@latest are equivalent; use whichever the machine has.
pipe.md with a schedule (e.g. 0 9 * * *), install then enable it, and Screenpipe runs it on that cron. You can also hand these commands to any AI agent — e.g. “create a Screenpipe scheduled task that summarizes my day at 6pm” — and let it scaffold, install, and enable the scheduled task for you.
Pipe.md format
Every pipe.md starts with YAML frontmatter between--- markers, followed by the prompt:
Frontmatter fields
Context header
Before execution, Screenpipe prepends a context header to the prompt:Schedule formats
Example: scheduled task with longer timeout for slow models
If your scheduled task uses a slower AI model or runs complex analysis, increase the timeout:timeout field, it would be limited to 5 minutes and likely timeout on slower models.
Manage scheduled tasks
Use the desktop app (Scheduled tasks → My tasks) or the REST API:HTTP API
When Screenpipe is running, scheduled tasks are also manageable via the local API:App ui
Go to Scheduled tasks → My tasks to see installed scheduled tasks, toggle schedules, run them manually, select an AI preset, and view logs.Examples
Reviewed project time report
Daily journal (Obsidian)
Standup report
AI presets
In the Screenpipe app, go to Settings → AI settings to configure presets (model + provider combinations). In Scheduled tasks → My tasks, you can assign a preset to each scheduled task — this overrides the model/provider in the frontmatter. Screenpipe auto-creates a default preset using Screenpipe cloud.AI providers
By default, scheduled tasks use Screenpipe cloud — no setup needed if you have a Screenpipe account. To use your own AI subscription (Claude Pro, ChatGPT Plus, Gemini, or API keys), scheduled tasks reuse pi’s native auth system:Option 1: subscription (free with existing plan)
Option 2: API key
Add to~/.pi/agent/auth.json:
ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY.
Using in a scheduled task
Addprovider to your pipe.md frontmatter:
Secrets
Store API keys in.env files inside the scheduled task folder:
source .env && curl -u $TOGGL_API_KEY:api_token ...
Never put secrets in pipe.md — the prompt may be visible in logs.
Architecture
- Agent ≠ model: the agent is the CLI tool (pi, claude-code). The model is the LLM (haiku, opus, llama).
- Time-scheduled runs are serialized; event-triggered runs use a separate bounded queue
- Default lookback uses a parsed interval, capped at 8 hours, or one hour when no interval is parsed. An output target can supply its own authoritative range
- Logs saved to
~/.screenpipe/pipes/{name}/logs/as JSON
Troubleshooting
Scheduled task scheduled but doesn’t run
Problem: Windows task scheduler or cron shows the task running, but the scheduled task produces no output. Solution: the scheduled task agent needs to know which scheduled task it’s executing. The context header includesPipe name: <name> so the agent can identify itself. Make sure:
- The scheduled task folder name matches the expected scheduled task name (e.g.,
~/.screenpipe/pipes/my-pipe/) - The scheduled task is listed in
npx -y screenpipe@latest pipe list - Check logs:
npx -y screenpipe@latest pipe logs my-pipe
Scheduled task runs but produces empty output
Problem: scheduled task executes successfully but generates no files or notifications. Solution: ensure your scheduled task prompt includes concrete instructions to:- Query Screenpipe API with the injected local token and a bounded start time
- Write output files (e.g., to
./output/<date>.md) - Or send notifications (e.g.,
POST http://localhost:11435/notify)
npx -y screenpipe@latest pipe run my-pipe to see logs before relying on scheduled execution.
Windows task scheduler permission denied
Problem: Windows task scheduler fails with permission errors when running scheduled tasks. Solution: ensure Screenpipe engine is running before the task executes. Scheduled tasks require the local API athttp://localhost:3030. Schedule the scheduled task after the app starts, or use the desktop UI instead.
Security & permissions
By default, scheduled tasks have full API access — they can call any Screenpipe endpoint. This is fine for scheduled tasks you write yourself, but if a scheduled task doesn’t need write access, you can restrict it. Addpermissions to your frontmatter:
Presets
Custom rules
Use typed patterns for fine-grained control over endpoints and data:Api(METHOD /path), App(name), Window(glob), Content(type). Deny always wins.
Protecting API keys & credentials
If you worry that an agent could access API keys or passwords visible on screen, use.env files (never put secrets in pipe.md itself):
.env file is still readable by processes with filesystem access, including an agent authorized to run shell commands. Review file access and any external actions separately.
The permissions: reader preset limits supported Screenpipe API requests. It is not a filesystem or network sandbox, and it does not prevent an agent from using other available tools. Review the allowed endpoints and the agent runtime before running a task.
See the full reference: scheduled task permissions →
Built-in Home shortcuts
Screenpipe currently ships four Home shortcuts. These are available without a Store install; community and integration scheduled tasks remain under Scheduled tasks → Discover.
Need help building scheduled tasks? join our Discord — share your scheduled tasks, get feedback, and see what others are building.
Download Screenpipe →