Skip to main content

General

Cap is an open source alternative to Loom. It’s a privacy-focused video messaging tool that allows you to record, edit, and share videos in seconds. You can record your screen, camera, or both simultaneously.
Cap is completely open source and can be self-hosted, giving you full control over your data and privacy. Unlike Loom, you can run Cap on your own infrastructure, customize it to your needs, and avoid vendor lock-in. The desktop app is built with Tauri and Rust for better performance and smaller file sizes.
Cap Desktop is available for macOS and Windows. The web app works on any modern browser. Linux support is planned for the future.
Yes, Cap is free and open source. The hosted version at cap.so offers free and pro tiers, but you can also self-host Cap completely free using the AGPLv3 licensed code.

Self-Hosting

The quickest way is to use Docker Compose:
git clone https://github.com/CapSoftware/Cap.git && cd Cap && docker compose up -d
Cap will be running at http://localhost:3000. Check the self-hosting guide for detailed instructions.
You’ll need:
  • Docker and Docker Compose (recommended) OR Node.js 20+ and pnpm
  • MySQL database
  • S3-compatible storage (MinIO works great for local setups)
  • At least 2GB RAM and 10GB disk space for basic usage
See the self-hosting overview for more details.
Yes! In Cap Desktop, go to Settings → Cap Server URL and enter your self-hosted instance URL. The desktop app will connect to your instance instead of cap.so.
The codebase is designed specifically for MySQL. MariaDB or other compatible databases might partially work but are not officially supported and may cause issues.
AI features require additional configuration including API keys for AI services. See the environment variables guide for setup instructions.

Recording

Open the Cap Desktop app, select your recording area (full screen, window, or custom), choose your audio and camera options, then click the record button. A countdown will start and recording begins.
On macOS: ~/Library/Application Support/so.cap.desktop.dev/recordingsOn Windows: %programfiles%/so.cap.desktop.dev/recordingsVideos are stored locally first, then uploaded to your configured Cap server (cap.so or your self-hosted instance).
Yes, you can configure Cap to record camera-only, screen-only, or both simultaneously through the recording options.
Cap records in modern video formats optimized for web playback. The exact format depends on your platform and settings, but all recordings are compatible with standard video players.
When running Cap Desktop from a terminal on macOS (during development), you need to grant screen recording and microphone permissions to the terminal app, not the Cap app itself. For the installed app, permissions are granted to Cap directly.

Development

Prerequisites:
  • Node.js 20+
  • Rust 1.88.0+
  • pnpm 8.10.5+
  • Docker (OrbStack recommended)
Then run:
pnpm install
pnpm cap-setup
pnpm env-setup
pnpm dev
See the Contributing Guide for details.
Cap is built with:
  • Desktop app: Tauri (Rust) with SolidStart frontend
  • Web app: Next.js with React
  • Database: Drizzle ORM with MySQL
  • Styling: TailwindCSS
  • Monorepo: Turborepo
  • Media processing: FFmpeg and custom Rust crates
For web only: pnpm dev:webFor desktop only: pnpm dev:desktopTo run both: pnpm dev
Cap uses a Turborepo monorepo:
  • apps/desktop - Tauri desktop app
  • apps/web - Next.js web application
  • packages/* - Shared libraries (ui, database, utils, etc.)
  • crates/* - Rust media processing crates
You can contribute by:Check out our bounty program for paid issues.

Troubleshooting

Make sure to run migrations in order:
pnpm db:generate
pnpm db:push
Never edit auto-generated files in the database package.
Try cleaning and restarting:
pnpm docker:clean
pnpm docker:up
Check our Troubleshooting Guide or reach out on Discord for community support.

Build docs developers (and LLMs) love