ClipShare is a serverless screen recording application built as an open-source alternative to Loom. It empowers users to effortlessly record their screens, optionally capture camera footage, and seamlessly upload the recordings to an S3-compatible storage service. Powered by Electron, ClipShare offers a cross-platform solution that's both powerful and easy to deploy.
Check out ClipShare in action.
- 📹 Screen Recording: Capture your entire screen or specific windows with crystal-clear audio.
- 🎥 Camera Integration: Add a personal touch by including your camera feed in recordings.
- 🚀 Auto-Launch: Start ClipShare automatically when your system boots up.
- 🖥️ Tray Icon: Quick access to ClipShare from your system tray for seamless workflow integration.
- ☁️ Serverless Architecture: Upload recordings directly to an S3 bucket without the need for a backend server.
- 🛠️ Customizable: Easily configure recording settings, storage options, and more.
Before you begin, ensure you have the following installed:
- Node.js (v14 or higher)
- npm (v6 or higher)
- An S3-compatible storage service (e.g., AWS S3, MinIO, DigitalOcean Spaces)
-
Clone the repository:
-
Install the dependencies:
npm install
-
Create a
.env
file in the root directory:ACCESS_KEY=your_access_key ACCESS_SECRET=your_secret_key ENDPOINT=https://s3.yourservice.com REGION=us-east-1 BUCKET_NAME=your-bucket-name URL_PREFIX=https://your-custom-domain.com/ ACL=public-read PRESIGN_URL=false PRESIGN_URL_EXPIRY=3600
Notes:
URL_PREFIX
is optional. If provided, it will be used as a prefix for the uploaded file URLs.ACL
is optional; default ispublic-read
. Other values, such asprivate
orauthenticated-read
, may be configured, depending on your object storage provider. This value will be used as the canned ACL when saving recordings.PRESIGN_URL
is optional; default isfalse
. If set totrue
, recording URL will be signed, allowing use of a private bucket.PRESIGN_URL_EXPIRY
is optional; default is 86400 (1 day). This value is the expiry for the signed URL, in seconds.
To build ClipShare for your platform:
npm run build
This command packages the application and places it in the dist/
directory.
For development:
npm start
For production, run the packaged application from the dist/
directory.
- Launch: Start ClipShare from your applications menu or use auto-launch.
- Access: Click the tray icon to open the main interface.
- Record: Choose your recording options and click "Start Recording".
- Stop: Click "Stop Recording" when finished.
- Share: After automatic upload, use the provided URL to share your recording.
If you don't intend to use an external S3 service, you can set up a MinIO docker container for local storage. Here's an example docker-compose.yml
file:
version: '3'
services:
minio:
image: minio/minio
ports:
- "9000:9000"
- "9001:9001"
volumes:
- ./data:/data
environment:
MINIO_ROOT_USER: your_access_key
MINIO_ROOT_PASSWORD: your_secret_key
command: server /data --console-address ":9001"
To use this setup:
-
Save the above content in a
docker-compose.yml
file. -
Run
docker-compose up -d
to start the MinIO server. -
Access the MinIO console at
http://localhost:9001
and create a bucket. -
Update your
.env
file with the following:ACCESS_KEY=your_access_key ACCESS_SECRET=your_secret_key ENDPOINT=http://localhost:9000 REGION=us-east-1 BUCKET_NAME=your-bucket-name
This configuration allows you to use ClipShare with a self-hosted S3-compatible storage solution.
- Environment Variables: Ensure your
.env
file is correctly formatted and in the root directory. - Auto-Launch Issues: Check your system's startup application settings.
- Recording Quality: Adjust bitrate and resolution in the app settings for optimal performance.
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature-name
- Submit a pull request
Please read our Contributing Guidelines for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
- Electron for making cross-platform desktop apps easy
- AWS SDK for S3 integration
- All our amazing contributors and users!
Built with ❤️ by the ClipShare team. Happy recording!