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
- 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
- install bun cli (required for building):
curl -fsSL https://bun.sh/install | bash
- clone the screenpipe repository:
git clone https://github.com/mediar-ai/screenpipe
cd screenpipe
- build the project with:
cargo build --release --features metal
- 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)
- 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
- 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')
- 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
- 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
- install bun cli (required for building):
curl -fsSL https://bun.sh/install | bash
- 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)
- to run the application, use:
./target/release/screenpipe
- 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
- facing any key signing issues? you need to sign the build for the updater then (opens in a new tab)
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
- check this docker setup (opens in a new tab)
- use
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