Skip to content

About

Lightweight screenshot annotations

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

159 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FeatherShot Logo

FeatherShot

Lightweight screenshot annotations β€” fast, native, and distraction-free.

Version License Platforms

macOS Windows Linux Chrome

πŸ“₯ Download Β Β·Β  🌐 Website Β Β·Β  πŸ“‹ Changelog


✨ What is FeatherShot?

FeatherShot is a free, open-source screenshot annotation tool. Capture a screen region, annotate it with arrows, numbered steps, and rectangles, then instantly save and copy β€” all in seconds.

No Dock icon. No bloat. No subscription.

New in v1.3.44: A redesigned editor in the website's look. Screenshots open at their original size (1:1) and shrink to fit only when they are bigger than the window; zoom in, zoom out, Fit and 1:1 sit in the bottom bar (also ⌘/Ctrl + βˆ’ 0 9 and pinch), and the window is always wide enough for Save & Copy. v1.3.43 on Windows, releasing the mouse always ends the area selection. v1.3.42 every screen is captured before the selector opens and the selection is cropped from that frozen image, Save & Copy shows failures in the toolbar, and Show Log File in the tray menu opens a log for bug reports. v1.3.41 the Windows selector covers the taskbar. v1.3.37 the Windows and Linux downloads no longer include an unused screen-capture library whose helper script two antivirus engines flagged (verify downloads). v1.3.36 every release is scanned on VirusTotal; v1.3.35 Windows and Linux text annotations take every key you type.


πŸ“₯ Download

Platform Format Requirements
🍎 macOS .dmg installer macOS 14 (Sonoma) or later
πŸͺŸ Windows .exe installer / portable Windows 10 or later
🐧 Linux .deb / .AppImage Ubuntu 22.04+, Debian, Fedora
🌐 Chrome Extension .zip Chrome, Edge, Brave, Arc

Or build from source β€” see Build Instructions below.

Package managers

Platform Install
Windows choco install feathershot
macOS brew install --cask KurtStevenK/tap/feathershot (tap setup)
Debian / Ubuntu apt-get install feathershot after adding the APT repo
Arch Linux pacman -S feathershot after adding the pacman repo

Updates

  • macOS (menu bar): Right-click πŸͺΆ β†’ Check for Updates… (or use brew upgrade --cask feathershot). Mac App Store and TestFlight installs update through the App Store or TestFlight instead.
  • Windows / Linux (tray): Right-click tray icon β†’ Check for Updates… (the Windows installer version updates in the app, the portable .exe opens the download page; Linux shows apt or pacman upgrade hints by distro).

Verify downloads

Every release is scanned on VirusTotal. The release notes list each installer's detection count and link to its full multi-engine report. Some engines flag new Electron apps heuristically, so read the whole report rather than a single detection. The two detections on the v1.3.36 Windows and Linux packages came from an unused library's Windows helper script, which v1.3.37 removes. See SECURITY.md.


πŸ›  Annotation Tools

Tool Icon Description
Step Arrow ⭐ 1β†’ 2β†’ 3β†’ Arrows with auto-incrementing numbered circles at the start β€” perfect for step-by-step guides and tutorials. Default tool.
Step Rectangle 1β–’ 2β–’ 3β–’ Rectangles with auto-incrementing numbered circles at the top-left corner β€” highlight multiple regions with ordered callouts.
Arrow β†— Draw clean, directional arrows with elegant filled arrowheads.
Rectangle β–’ Highlight regions with outlined rectangles to draw attention to specific areas.
Circle / Ellipse β—― Draw circles and ellipses by dragging a bounding box β€” stroke only, no fill.
Line β•± Draw simple straight lines without arrowheads.
Question Arrow ?β†’ Arrow with a Question Mark circle at the start β€” perfect for marking unknown or questionable areas.
Question Rectangle ?β–’ Rectangle with a Question Mark circle at the top-left corner.
Exclamation Arrow !β†’ Arrow with an exclamation badge at the start (shortcut -).
Exclamation Rectangle !β–’ Rectangle with an exclamation badge at the top-left (shortcut =).
Text T Free-floating text β€” click to place, edit inline, drag to position.
ABC Arrow a→ b→ c→ Arrows with auto-incrementing lettered circles (a, b, ..., z, aa, ab...) at the start.
ABC Rectangle aβ–’ bβ–’ cβ–’ Rectangles with auto-incrementing lettered circles at the top-left corner.
Magnifier πŸ” Creates a circular zoom lens on the screenshot with configurable zoom (1.5×–5Γ—). Click to set center, drag to set radius.

Additional Controls

  • 🎨 Color Picker β€” Choose any annotation color via the native color wheel.
  • πŸ“ Line Width Slider β€” Adjust stroke thickness from 2px to 15px.
  • ↩️ Undo / Clear β€” Step back or wipe all annotations.
  • πŸ’Ύ Save & Copy β€” Saves a timestamped PNG to ~/Downloads and copies to clipboard in one click.
  • ⌨️ Keyboard Shortcuts (macOS, Windows, Linux) β€” The key in each tool's tooltip picks it (1–0, -, =, T, M); ⌘Z / Ctrl+Z undoes and ⌘S / Ctrl+S saves and copies.

πŸš€ Usage

macOS

  1. Click the πŸͺΆ icon in your menu bar (or right-click for options).
  2. Your cursor becomes a crosshair β€” select a region of your screen.
  3. The annotation editor opens β€” pick a tool, draw, adjust color and width.
  4. Click Save & Copy β€” done! Image is on your clipboard and in ~/Downloads.

Windows & Linux

  1. FeatherShot appears as a tray icon in your system tray.
  2. Left-click the icon (or right-click β†’ Take Screenshot).
  3. A selection overlay appears β€” drag to select the area you want to capture.
  4. The annotation editor opens with your selected region.
  5. Annotate and click Save & Copy.

Tip: The selection overlay spans all connected monitors for multi-monitor support. Press Esc to cancel.

Chrome Extension

  1. Click the FeatherShot icon in your browser toolbar.
  2. A selection overlay appears on the current tab β€” drag to select an area.
  3. A new tab opens with the annotation editor showing only the selected region.
  4. Annotate and click Save & Download.

πŸ”¨ Build from Source

🍎 macOS (Native Swift App)

Requires Swift 6.0+ on macOS 14 (Sonoma) or later.

git clone https://github.com/KurtStevenK/FeatherShot.git
cd FeatherShot

# Build and run (debug)
swift build
swift test
.build/debug/FeatherShot &

# Build a release DMG
chmod +x build_release.sh
./build_release.sh

Note: The & runs FeatherShot in the background so your terminal stays usable.

πŸͺŸ Windows / 🐧 Linux (Electron)

Requires Node.js 20+.

git clone https://github.com/KurtStevenK/FeatherShot.git
cd FeatherShot/electron-app

# Install dependencies
npm install

# Run in development mode
npm start

# Build installer
npm run build:win    # Windows .exe
npm run build:linux  # Linux .deb + .AppImage
🌐 Chrome Extension
  1. Clone the repository.
  2. Open chrome://extensions in your browser.
  3. Enable Developer mode (top right).
  4. Click "Load unpacked" and select the chrome-extension/ directory.

πŸ” Permissions

macOS

Permission Why
Screen Recording Required for screencapture to capture your screen.
Accessibility May be requested depending on macOS security settings.

Go to System Settings β†’ Privacy & Security to manage these.

Windows & Linux

No special permissions needed β€” FeatherShot uses Electron's desktopCapturer API.

Chrome Extension

Permission Why
Active Tab Captures the current tab as a screenshot.
Downloads Saves annotated screenshots to your Downloads folder.

πŸ— Architecture

macOS (Native)

A lean, 3-file Swift application:

Sources/
β”œβ”€β”€ AppMain.swift          # Menu bar app lifecycle, screen capture, window management
β”œβ”€β”€ AnnotationView.swift   # SwiftUI editor with canvas, toolbar, save/export
└── DrawingShapes.swift    # Tool enum, shape definitions (Arrow, Line, Ellipse, Magnifier, Step variants, Question variants, ABC variants)

shared/
β”œβ”€β”€ letterLabel.js         # Canonical ABC label helper (Electron + Chrome)
└── letterLabel.cases.json # Cross-platform test vectors (Swift tests + npm verify)

Windows & Linux (Electron)

electron-app/
β”œβ”€β”€ main.js                # System tray, area selection, screen capture, window management
└── renderer/
    β”œβ”€β”€ index.html         # Editor UI
    β”œβ”€β”€ style.css          # Dark theme stylesheet
    β”œβ”€β”€ app.js             # Canvas-based annotation tools
    β”œβ”€β”€ selection.html     # Area selection overlay UI
    β”œβ”€β”€ selection.css      # Selection overlay styles
    └── selection.js       # Selection overlay logic

Chrome Extension

chrome-extension/
β”œβ”€β”€ manifest.json          # Extension manifest v3
β”œβ”€β”€ background.js          # Content script injection + tab capture
β”œβ”€β”€ selector.js            # Area selection content script (injected into tab)
β”œβ”€β”€ selector.css           # Selection overlay styles (injected into tab)
β”œβ”€β”€ popup.html/js          # Toolbar popup UI
β”œβ”€β”€ editor.html/css/js     # Full annotation editor with crop support
└── icons/                 # Extension icons

🀝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository.
  2. Create a branch for your feature: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m "Add my feature"
  4. Push and open a Pull Request.

Repo checks

From the repository root (Node.js 20+):

npm run verify    # sync shared JS, letterLabel tests, Chrome manifest checks
swift test        # macOS β€” includes shared letterLabel fixture

Adding a New Tool

See docs/adding-a-tool.md for a step-by-step walkthrough. Broader conventions: docs/project-conventions.md.


πŸ“‹ Changelog

See CHANGELOG.md for a detailed release history.


πŸ“„ License

MIT License β€” see LICENSE for details.

Copyright Β© 2026 Kurt Steven Kainzmayer


Built with ❀️ · Crafted by Kurt Steven Kainzmayer

About

Lightweight screenshot annotations

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages