Skip to main content
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.
Looking for ready-to-use scheduled tasks? browse the task library →. If a scheduled task fails, use scheduled task debugging.
For a guided first setup, use reliable reports: define the source window, verify the saved output, and test a rerun before scheduling. See AI usage and controls for allowance, warnings, and stop versus auto-run behavior.

Browse and install community scheduled tasks

To find and install scheduled tasks others have made:
  1. Open Scheduled tasks in Screenpipe
  2. Click the Discover tab at the top
  3. Browse featured and community scheduled tasks, or search for a specific one
  4. Click GET to install any scheduled task
  5. Open My tasks to run it, enable it, and configure the trigger
You can also browse all available scheduled tasks online at the online task library before installing.

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:
Replace [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.
Run CLI commands from a clean temp directory to avoid node_modules conflicts: cd "$(mktemp -d)" && npx -y screenpipe@latest pipe list.
This is how you turn a one-off into a recurring cron automation: write a 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:
The agent uses this context to identify the run. Define the intended report window and output destination in the task instructions; an output target may override the default lookback. Use the injected local API URL and token for requests.

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:
In this example, the scheduled task will run daily and has up to 40 minutes to complete. Without the 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

See consultant time tracking for the full workflow.

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:
Or set environment variables: ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY.

Using in a scheduled task

Add provider to your pipe.md frontmatter:
Provider resolution: preset (if set) → frontmatter provider/model → Screenpipe cloud.

Secrets

Store API keys in .env files inside the scheduled task folder:
The scheduled task prompt can reference them: 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

For a production-style debugging flow, including logs, stuck runs, provider auth, connection proxies, and permissions, see debug Screenpipe scheduled tasks.

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 includes Pipe name: <name> so the agent can identify itself. Make sure:
  1. The scheduled task folder name matches the expected scheduled task name (e.g., ~/.screenpipe/pipes/my-pipe/)
  2. The scheduled task is listed in npx -y screenpipe@latest pipe list
  3. 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)
Test locally first: 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 at http://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. Add permissions to your frontmatter:

Presets

Custom rules

Use typed patterns for fine-grained control over endpoints and data:
Rule types: Api(METHOD /path), App(name), Window(glob), Content(type). Deny always wins.
If your scheduled task doesn’t need to write data, review permissions: reader to restrict supported Screenpipe API calls, including destructive operations. This does not sandbox other agent tools.

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):
Then reference them in your scheduled task prompt:
Keep secrets out of the prompt and avoid printing them in terminal output or logs. A .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 →