Professional screen capture with annotations and instant upload
Capture regions, annotate, add watermarks β save locally or upload to SFTP, FTP, or S3.
Runs in the system tray. Multi-monitor, 10 languages.
- Features
- Screenshots
- Requirements
- Quick Start
- Usage
- Configuration
- Internationalization
- Project Structure
- Building
- Windows Installer
- Contributing
- License
|
|
| Capture overlay | Settings |
|---|---|
| Overlay on each display; drag to select, toolbar for crop and annotations. | Language, save method (SSH/FTP/S3), base URL, watermark. |
After starting capture from the tray, overlay windows appear on each display. Drag to select a region; use the toolbar to crop, annotate, then save to file or upload to server.
| Requirement | Version |
|---|---|
| Node.js | 18+ (LTS recommended) |
| Package manager | npm or yarn |
| OS | Windows, macOS, or Linux (Electron-supported) |
git clone https://github.com/prybytkow/simple-shot.git
cd simple-shot
npm install
npm run build
npm startOr run in development mode (auto-rebuild on change):
npm run dev- Start β Click the tray icon or choose Capture from the tray menu.
- Select β Click and drag on the desired screen to define the region; resize with handles if needed.
- Annotate (optional) β Use the toolbar: crop, shapes, text, arrows, brush, blur; set format.
- Export β Save to file (PNG, path to clipboard) or Upload to server (URL to clipboard).
- History β Tray β Link History to see recent uploads/saves and copy links.
| Shortcut | Action |
|---|---|
| ESC | Cancel capture and hide overlay |
All settings: Tray β Settings. Stored in user data (e.g. %APPDATA%\simple-shot on Windows).
| Section | Description |
|---|---|
| Save method | SSH (SFTP), FTP, or Amazon S3 β host, credentials, paths |
| Base URL | Prefix for uploaded file links (e.g. https://vault.by) |
| Watermark | Enable, text, position, font size, color, opacity (0β1) |
| Language | Interface language or System default |
| Code | Language | Code | Language |
|---|---|---|---|
en |
English | it |
Italiano |
ru |
Π ΡΡΡΠΊΠΈΠΉ | es |
EspaΓ±ol |
zh |
δΈζ | pt |
PortuguΓͺs |
pl |
Polski | fr |
FranΓ§ais |
uk |
Π£ΠΊΡΠ°ΡΠ½ΡΡΠΊΠ° | β | β |
be |
ΠΠ΅Π»Π°ΡΡΡΠΊΠ°Ρ | β | β |
- Default: English. System default uses OS locale with fallback to English.
- Language is saved and applied to tray, settings, capture overlay, and history.
Source and assets are in the repo; dist/ is generated by the build (gitignored).
simple-shot/
βββ src/main/ # Main process (TypeScript)
β βββ main.ts # Entry, tray, windows, IPC
β βββ screen-capture.ts # Capture, watermark, save/upload
β βββ i18n.ts # Translations
β βββ history.ts # Upload/save history
β βββ ssh-handler.ts # SSH/SFTP
β βββ uploaders/ # SSH, FTP, S3 uploaders
βββ renderer/ # HTML UIs β dist/renderer
β βββ capture-window.html
β βββ settings.html
β βββ history.html
βββ assets/ # Icons β dist/main/assets
β βββ icon.png
β βββ icon.ico
βββ scripts/
β βββ copy-build-assets.js
βββ package.json
βββ tsconfig.json
βββ LICENSE
| Command | Description |
|---|---|
npm run build |
Compile TypeScript, copy renderer + assets to dist/ |
npm start |
Build (if needed) and run the app |
npm run dev |
Watch mode: rebuild and restart on change |
Build output: dist/main/ (JS + assets), dist/renderer/ (HTML).
Build an installable Windows app (NSIS .exe and portable) with electron-builder. Run on Windows.
npm install
npm run distOutput in release/:
| Output | Description |
|---|---|
| Simple Shot Setup 1.0.0.exe | NSIS installer β choose directory, Start Menu, desktop shortcut |
| win-unpacked/ | Portable β run Simple Shot.exe without installing |
Icons: Put icon.png and icon.ico in assets/. They are copied to dist/main/assets/ on build. Use a multi-size .ico (16Γ16, 32Γ32, 48Γ48, 256Γ256) for best results.
Icon not updating? Clean build: delete release/ and dist/, then npm run dist. Clear Windows icon cache (%LocalAppData%\IconCache.db, restart Explorer) if needed.
Contributions are welcome. For larger changes, open an issue first. Ensure the project builds and runs:
npm run build && npm startThis project is licensed under the MIT License β see LICENSE for the full text.
Copyright Β© 2025 Aliaksei Prybytkou