docs
getting started

getting started

install now

screenpipe offers multiple installation methods depending on user needs and technical proficiency. whether you are a developer looking to use the cli or a user who wants a more plug-and-play desktop app, screenpipe provides flexible options to get started quickly.

for non technical users or those who want to get started quickly, we recommend getting the desktop app here (opens in a new tab).

curl -fsSL raw.githubusercontent.com/mediar-ai/screenpipe/main/install.sh | sh
screenpipe
# make sure to allow permissions on macos (screen, mic)

then open the simple timeline UI:

git clone https://github.com/mediar-ai/screenpipe
open screenpipe-server/examples/timeline_ui_simple/index.html

this will open a rewind.ai alike timeline powered by a single html file :) that you can tweak around!

now download the desktop app (opens in a new tab) and use pipes (plugins) to add more features!

build from source

for users preferring full control or customization, building the app manually from the repository is an option. this method requires rust and other necessary dependencies. follow the provided build guide to compile the app.


macos

  1. start by installing rust and all necessary dependencies:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
brew install pkg-config ffmpeg jq cmake wget
  1. install bun cli (required for building):
curl -fsSL https://bun.sh/install | bash
  1. clone the screenpipe repository:
git clone https://github.com/mediar-ai/screenpipe
cd screenpipe
  1. build the project with:
cargo build --release --features metal
  1. finally, run screenpipe:
./target/release/screenpipe

add this to your vscode settings in the root of the project .vscode/settings.json:

{
   "rust-analyzer.cargo.features": [
      "metal",
      "pipes"
   ],
   "rust-analyzer.server.extraEnv": {
      "DYLD_LIBRARY_PATH": "${workspaceFolder}/screenpipe-vision/lib:${env:DYLD_LIBRARY_PATH}",
      "SCREENPIPE_APP_DEV": "true"
   },
   "rust-analyzer.cargo.extraEnv": {
      "DYLD_LIBRARY_PATH": "${workspaceFolder}/screenpipe-vision/lib:${env:DYLD_LIBRARY_PATH}",
      "SCREENPIPE_APP_DEV": "true"
   },
   "terminal.integrated.env.osx": {
      "DYLD_LIBRARY_PATH": "${workspaceFolder}/screenpipe-vision/lib:${env:DYLD_LIBRARY_PATH}",
      "SCREENPIPE_APP_DEV": "true"
   }
}
cd screenpipe-app-tauri
bun install
bun scripts/pre_build.js # <- this is important to copy the CLI into the app
bun tauri build
# MAKE SURE TO RUN THE CLI BUILD FIRST IN THE ROOT

need help? open an issue on github. (opens in a new tab)


windows

if this does not work for you, please open an issue (opens in a new tab) or get the pre-built desktop app (opens in a new tab)

  1. install required tools:
# install visual studio build tools
winget install -e --id Microsoft.VisualStudio.2022.BuildTools
 
# install rust
winget install -e --id Rustlang.Rustup
 
# install llvm
winget install -e --id LLVM.LLVM
 
# install cmake
winget install -e --id Kitware.CMake
 
# install unzip utility
winget install -e --id GnuWin32.UnZip
 
# install git
winget install -e --id Git.Git
 
# install bun (using npm)
irm https://bun.sh/install.ps1 | iex
 
# install pkg-config (download from https://sourceforge.net/projects/pkgconfiglite/files/)
# download and extract to a folder in your PATH
 
# clone and setup vcpkg
cd C:\dev # or your preferred location
$env:DEV_DIR = $(pwd)
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat -disableMetrics
./vcpkg.exe integrate install --disable-metrics
 
# install required libraries
./vcpkg.exe install ffmpeg:x64-windows
  1. environment variables

add these to your system environment variables (windows settings -> system -> about -> advanced system settings -> environment variables):

[System.Environment]::SetEnvironmentVariable('PKG_CONFIG_PATH', "$env:DEV_DIR\vcpkg\packages\ffmpeg_x64-windows\lib\pkgconfig", 'User')
[System.Environment]::SetEnvironmentVariable('VCPKG_ROOT', "$env:DEV_DIR\vcpkg", 'User')
[System.Environment]::SetEnvironmentVariable('LIBCLANG_PATH', 'C:\Program Files\LLVM\bin', 'User')
[System.Environment]::SetEnvironmentVariable('PATH', "$([System.Environment]::GetEnvironmentVariable('PATH', 'User'));C:\Program Files (x86)\GnuWin32\bin", 'User')
  1. clone and build:
# clone the repo
git clone https://github.com/mediar-ai/screenpipe
cd screenpipe
 
# build the cli
cargo build --release
 
# build the desktop app
cd screenpipe-app-tauri
bun install
bun scripts/pre_build.js
bun tauri build

linux

  1. install dependencies with the following commands:
sudo apt-get install -y g++ ffmpeg tesseract-ocr cmake libavformat-dev libavfilter-dev libavdevice-dev libssl-dev libtesseract-dev libxdo-dev libsdl2-dev libclang-dev libxtst-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. install bun cli (required for building):
curl -fsSL https://bun.sh/install | bash
  1. clone the repository and build the application:
git clone https://github.com/mediar-ai/screenpipe
cd screenpipe
cargo build --release
# add --features cuda for gpu support (experimental)
# add --features mkl for intel accelerated cpu support (experimental)
  1. to run the application, use:
./target/release/screenpipe
  1. to build the desktop app:
cd screenpipe-app-tauri
bun install
bun scripts/pre_build.js # <- this is important to copy the CLI into the app
bun tauri build

linux docker

check out the docker setup here (opens in a new tab)

gpu acceleration options

cuda support (nvidia gpus)

to enable cuda support, add the --features cuda flag when building:

cargo build --release --features cuda
intel mkl support

for intel cpu optimization, add the --features mkl flag:

cargo build --release --features mkl

troubleshooting

important note for developers

if you encounter key-related errors when building from source, especially for the desktop app, you may need to sign your updates. this is particularly important for our production builds and ensuring secure update processes.

for detailed instructions on signing updates, please refer to the tauri updater documentation (opens in a new tab).

you can probably remove the updater config in your fork if you don't need it.

other options

export CARGO_PROFILE_RELEASE_LTO=true
export CARGO_PROFILE_RELEASE_OPT_LEVEL=z
export CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1

to build a faster and smaller release but takes longer to build

for businesses

you can use screenpipe in your business either by:

  • running the CLI on your customer's computer
  • running the app on your customer's computer
  • embedding the library or CLI in your own software
  • running the CLI in the cloud and forward the video/audio through SSH
  • using our Microsoft Remote Desktop integration

book a demo with our team (opens in a new tab)