A web-based application that allows users to share text and files in real-time through secure, encrypted sessions.
Tired of sharing text / files across different computers? Try this clippy!
- Session-based sharing: Create or join sessions using short, custom-length IDs
- Encrypted payloads: Each session uses a 256-bit AES-GCM key derived client-side from the connection ID (SHA-256 KDF). All block content is encrypted before it leaves the browser, so the backend only ever sees ciphertext. The server issues the ID and could derive the key too — this is encrypted-at-rest and on-the-wire, not strict end-to-end against a malicious server
- Real-time collaboration: See blocks appear instantly when other users create them
- File uploads: Support for small file uploads
- User management:
- Custom or random user names
- Host can transfer host rights to other users
- Host can control whether new users can join
- Session persistence: Sessions remain active until destroyed by host or after 1 hour of inactivity
- Block system: Add and delete text or file blocks, similar to Jupyter notebooks
- Download the release ZIP file from the release page. To build it yourself, please refer to Build It Yourself.
- Unzip the file.
- Run the setup script:
bash setup.sh # If Docker requires root permission sudo bash setup.sh - Follow the prompts to enter variables and parameters.
- You're all set!
The rate limit is set in nginx.
Default setting allows 10 requests per minute.
You can modify the limit in
docker/nginx/nginx.conf.
By default, the web service runs on port 8080. To change it, edit the .env file of the project root.
- Frontend: Built using Vite, located in the
frontendfolder. - Backend: Built using Python FastAPI, located in the
backendfolder.
docker/frontend: Contains built frontend files.docker/backend: Contains Python backend files.docker/nginx: Contains Nginxdefault.conf.
Recommended:
- Node >= 22.20.0
- Python >= 3.12
- Navigate to the
frontendfolder. - Install dependencies:
npm install
- (Optional) Modify the code as you wish.
- (Optional) Vite can be executed in development mode:
npm run dev
- Build the frontend:
npm run build
- Copy the files under
distfolder todocker/frontend/.
The FastAPI documentation is in https://example.com/api/v1/docs.
The passphrase and salt is stored in the docker/backend/.env file.
If you want to modify the backend, follow these steps. Otherwise, copy the contents of backend to docker/.
- Navigate to the
backendfolder. - (Optional) Create a virtual environment:
By using venv
OR by using uv
python -m venv .venv
uv venv
- (Skip if not using a virtual environment) Activate the virtual environment:
source .venv/bin/activate - Install dependencies:
OR by using uv
pip install -r requirements.txt
uv sync
- Modify the code as you wish.
- Run the backend in development mode:
python app.py
- Copy the files under
backendfolder todocker/backend/.
Note that you might want to change ALLOWED_ORIGINS of python .env to * when developing.
- Destroying the session might not directly take you back to homepage.
Encounter issues or bugs? Feel free to report them in Issues and submit Pull Requests, please open an issue before typing to do pr.


