docs
plugins (pipes)

plugins (pipes)

an essential part of screenpipe is that it is extensible, providing powerful extensibility through custom workflows that interact with captured screen and audio data. whether you need to tag activities, generate summaries, or send data to third-party services, plugins allow you to tailor screenpipe to your specific needs.

plugins in screenpipe are categorized into 2 types:

  • pipes: these are plugins with native integration with screenpipe. they can run within the cli/lib/app without the need for manual execution. they run in a sandboxed environment, and can be written in Typescript or Javascript.
  • standalone scripts: these are independent scripts that need to be run separately and may require additional setup.

1. pipes

overview of pipes

pipes in screenpipe are plugins designed to process data captured from your screen and audio feeds. they automate workflows such as tagging, summarizing, and integrating data with external platforms like notion, salesforce, or slack.

pipe workflow examples:

  • pipe example: screenpipe | ai tag | notion update
  • pipe example: screenpipe | ai tag | slack report
  • pipe example: screenpipe | log daily activities

key features of pipes:

  • custom workflows: automate repetitive tasks such as tagging screen activity or summarizing audio transcriptions.
  • real-time processing: pipes can process captured data in real-time.
  • integration capabilities: extend the functionality by sending processed data to third-party apps.

example use cases:

  • ai activity tagging: automatically tag screen or audio activities based on ai models.
  • meeting summaries: generate summaries of meeting discussions using combined screen and audio data.
  • crm integration: automatically log interactions or captured data into a crm like salesforce.

running a pipe:

  • download the pipe (can be github or your local machine as well)
screenpipe pipe download https://github.com/mediar-ai/screenpipe/tree/main/examples/typescript/pipe-stream-ocr-text
  • enable the pipe for use
screenpipe pipe enable pipe-stream-ocr-text
  • run the pipe
screenpipe 

this simple pipe will stream text to local markdown files in current directory.


available pipes

screenpipe provides a variety of pipes and standalone scripts that allow users to extend the platform's functionality with minimal effort. below is a table summarizing the available examples:

exampledescriptionlink
pipe email daily logsend daily activity logs via emaillink (opens in a new tab)
pipe screen to crmintegrate screen data with crm systemslink (opens in a new tab)
pipe phi3.5 engineering team logsgenerate engineering team work logslink (opens in a new tab)
pipe stream ocr textstream ocr text from screen datalink (opens in a new tab)
pipe activity topic trackertrack and summarize activitieslink (opens in a new tab)
pipe focus notification buddyhelp you stay focusedlink (opens in a new tab)
pipe security checknotify user if detected any suspicious activitylink (opens in a new tab)
pipe sync meetings to notionsync meeting transcriptions & summaries to notionlink (opens in a new tab)
pipe tagging activityautomatically tag activities using ailink (opens in a new tab)

quick tour - developing pipes in screenpipe

screenpipe's plugin system, referred to as pipes, allows you to create customized pipes that automate workflows. these pipes can process, annotate, analyze, summarize, or integrate your screen and audio data with other tools.

users can begin by cloning an existing pipe, such as pipe-email-daily-log (opens in a new tab). you can use any javascript/typescript to build your use case, from simple to highly advanced. the primary requirement is that the pipe folder must contain a file named pipe.js or pipe.ts.

git clone https://github.com/mediar-ai/screenpipe.git
cp -r screenpipe/examples/typescript/pipe-email-daily-log screenpipe/examples/typescript/my-pipe

once the pipe is ready, follow these steps to make it work with screenpipe:

  • download the pipe (from local or github url):

    screenpipe pipe download path/to/pipe-name
  • enable the pipe (enabling will activate the pipe, similar to installing it in screenpipe):

    screenpipe pipe enable pipe-name

this setup enables the creation of countless workflows tailored to specific needs, automating tedious or complex tasks.

you can also load & enable pipes from the app UI, go to pipe store, and click relevant buttons.

please send a PR with your pipe to the repo, we will review and merge it!

we also do bounties for new pipes, or if you talk about screenpipe on social media, we give $100+!

also we would love to build integration with Stripe, etc. so you can create a paid pipe for example and we would be happy to help you make money!

tips & hacks

  • you can use pipe.json to let others pass configuration options to your pipe through the UI or CLI.
  • pipes have access to a special API that allows you to interact with your computer or special features like sending notifications, sending emails, etc.
  • check this file (opens in a new tab) for more details.
  • in general we recommend using local LLMs like ollama as the data can be large and sensitive.

known limitations

  • you can only use JS/TS to build your pipes.
  • we did not figure out yet a way to use dependencies but some manage to do so, this is because pipes run in Deno runtime which is special.
  • you usually need to run the pipe in an infinite loop for example if it's something that process your data continuously, of course if this is for example an agent that summarize your day one shot it does not have to be infinite loop.