Skip to content

prybytkow/simple-shot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Simple Shot logo

Simple Shot

Professional screen capture with annotations and instant upload

License: MIT Electron Node.js 18+ Platform

Capture regions, annotate, add watermarks β€” save locally or upload to SFTP, FTP, or S3.
Runs in the system tray. Multi-monitor, 10 languages.


πŸ“‘ Table of Contents


✨ Features

πŸ“Έ Screen capture

  • Multi-display β€” Overlay on each monitor; pick a screen and drag to select
  • Aspect-ratio crop β€” 3:2, 2:3, 4:3, 3:4, 1:1, 16:9 or free
  • Resize & move β€” Handles and drag to adjust the selection

✏️ Annotations

  • Shapes β€” Rectangle, circle (outline/filled; right-click toggles)
  • Text & numbers β€” With optional background
  • Arrow β€” Click to release
  • Brush β€” Freehand draw
  • Blur β€” Hide sensitive areas (applied on export)
  • Move β€” Drag any annotation; Undo last change
  • Format β€” Text color, highlight, font size, stroke

☁️ Export & upload

  • Save to file β€” PNG via save dialog; path to clipboard
  • Upload β€” URL to clipboard
  • SSH (SFTP) β€” Host, port, user, password or key, path
  • FTP / FTPS β€” With optional TLS
  • Amazon S3 β€” Bucket, region, optional custom endpoint

🏷️ Watermark

  • Optional text on every export
  • Position, font size, color, opacity

πŸ”— Other

  • Link history β€” Recent uploads/saves; click to copy
  • System tray β€” Left-click capture, right-click menu
  • Settings β€” Stored in user data

πŸ“· Screenshots

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.


πŸ“‹ Requirements

Requirement Version
Node.js 18+ (LTS recommended)
Package manager npm or yarn
OS Windows, macOS, or Linux (Electron-supported)

πŸš€ Quick Start

git clone https://github.com/prybytkow/simple-shot.git
cd simple-shot
npm install
npm run build
npm start

Or run in development mode (auto-rebuild on change):

npm run dev

πŸ“– Usage

  1. Start β€” Click the tray icon or choose Capture from the tray menu.
  2. Select β€” Click and drag on the desired screen to define the region; resize with handles if needed.
  3. Annotate (optional) β€” Use the toolbar: crop, shapes, text, arrows, brush, blur; set format.
  4. Export β€” Save to file (PNG, path to clipboard) or Upload to server (URL to clipboard).
  5. History β€” Tray β†’ Link History to see recent uploads/saves and copy links.
Shortcut Action
ESC Cancel capture and hide overlay

βš™οΈ Configuration

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

🌍 Internationalization

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.

πŸ“ Project Structure

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

πŸ”¨ Building

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).


πŸ“¦ Windows Installer

Build an installable Windows app (NSIS .exe and portable) with electron-builder. Run on Windows.

npm install
npm run dist

Output 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.


🀝 Contributing

Contributions are welcome. For larger changes, open an issue first. Ensure the project builds and runs:

npm run build && npm start

πŸ“„ License

This project is licensed under the MIT License β€” see LICENSE for the full text.

Copyright Β© 2025 Aliaksei Prybytkou

About

simple-shot app

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors