Professional screen recording application built with Electron. Open-source alternative to Screencastify and Screenity.
- Clone the repository:
git clone https://github.com/lef-adhoc/streamsnap.git
cd streamsnap- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env
# Edit .env with your Google Drive API credentials- Run in development mode:
npm run devBuild for your current platform:
npm run buildBuild for all platforms:
npm run dist:allTo enable Google Drive integration, you'll need to:
- Create a project in the Google Cloud Console
- Enable the Google Drive API
- Create OAuth 2.0 credentials
- Add your credentials to the
.envfile
GOOGLE_CLIENT_ID- Google OAuth client IDGOOGLE_CLIENT_SECRET- Google OAuth client secret
npm run dev- Start development servernpm run build:css- Build Tailwind CSSnpm run format- Format code with Prettiernpm run format:check- Check code formatting
Security scanning runs automatically on every push, pull request, and weekly:
| Tool | What it checks |
|---|---|
| CodeQL | Static analysis — bugs, XSS, injection in JS |
| npm audit | Known CVEs in dependencies (severity ≥ moderate) |
| Trivy | CVEs in node_modules + hardcoded secrets in source |
| Dependency Review | Blocks PRs that introduce vulnerable dependencies |
| OSSF Scorecard | Overall security posture score (branch protection, code review, etc.) |
Results are visible in the Security tab of the repository.
To report a vulnerability, please open a GitHub Security Advisory instead of a public issue.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'feat: add your feature' - Push to the branch:
git push origin feature/your-feature - Open a Pull Request against
main
For detailed architecture and technical decisions, see specifications.md.