๐ธ Snap2Link
Paste screenshots into Claude Code, Cursor, or any terminal AI โ in one keystroke.
Hotkey โ drag a region โ public share link lands in your clipboard. Done.
๐ snap2link.app
Why Snap2Link?
You're working with Claude Code, Cursor, or ChatGPT in a terminal โ maybe on a remote VPS, maybe locally โ and you need to show the model a UI bug, a design mockup, an error screen. The usual workflow is painful: screenshot, save, open the browser, upload to Imgur or Drive, copy the link, paste it. Every single time.
Snap2Link collapses that whole sequence into one keystroke. Hit your hotkey, drag a region, and a public link is already in your clipboard, ready to paste straight into your AI prompt. Uploads go to your own Google Drive with the minimum scope possible โ no third-party server in the middle, no account to create, no monthly fee.
โจ Features
| |
|---|
| ๐ค Built for AI workflows | Paste screenshots into Claude Code, Cursor, ChatGPT, Aider, or any tool that accepts an image URL |
| ๐ฑ๏ธ Drag-to-capture overlay | Fullscreen, semi-transparent, live size readout, ESC to cancel |
| โก Instant share link | Upload โ make public โ clipboard, all in the background, < 1 s on broadband |
| โจ๏ธ Global hotkey | Default Ctrl + Print Screen, fully rebindable from Settings |
| ๐ฅ๏ธ Cross-platform | Windows, macOS, and Linux โ single codebase, native everywhere |
| ๐๏ธ Auto-cleanup on Drive | Deletes screenshots older than N days (default 30) โ your Drive stays tidy |
| ๐ Built-in auto-updater | Signed updates pulled from GitHub Releases โ Settings โ Check for Updates |
| ๐ช Start with your OS | Toggle from Settings โ always one keystroke away |
| ๐ No third-party server | OAuth straight to your Drive. Your screenshots, your account, no middleman |
| ๐ i18n-ready | English bundled; add a locale by translating a single JSON file |
๐ Quick Start
# 1 ยท Install (see Installation section for your OS)
# 2 ยท Launch โ wizard โ "Connect Google Drive" โ grant access in your browser
# 3 ยท Press the hotkey โ drag a region โ paste anywhere
That's it. Three steps, zero configuration.
๐ฆ Installation
Windows
Via winget (recommended, Windows 10+)
winget install snap2link
# or, fully qualified:
winget install amys94fr.Snap2Link
Direct download โ grab the .exe installer from the Releases page. Windows SmartScreen may flag the binary as "unrecognised app" (not yet EV-code-signed) โ click More info โ Run anyway.
macOS
Download the universal .dmg from the Releases page, open it, and drag Snap2Link into Applications. A single binary runs natively on both Apple Silicon and Intel.
The app is not yet notarised, so the first launch needs a manual override: right-click the app in Finder โ Open โ Open in the dialog. Subsequent launches behave normally.
The first capture will prompt for Screen Recording permission in System Preferences โ Security & Privacy โ Screen Recording. Grant it and re-launch.
Linux
One-liner install (recommended)
curl -fsSL https://raw.githubusercontent.com/amys94fr/Snap2Link/main/scripts/install.sh | bash
The script detects your distro, picks the right package (.deb, .rpm, or .AppImage as fallback), downloads it from the latest release, and installs it. Read it before running if you'd like โ it's in the repo.
Manual install โ grab the file you want from the Releases page:
# Debian/Ubuntu (resolves dependencies automatically)
sudo apt install ./snap2link_*_amd64.deb
# Fedora/RHEL
sudo dnf install ./snap2link-*.x86_64.rpm
# Any distro (AppImage โ portable, no install needed)
chmod +x snap2link_*_amd64.AppImage
./snap2link_*_amd64.AppImage
The system tray icon requires libayatana-appindicator3-1, which is preinstalled on most desktop environments.
Build from source
You'll need Rust (stable), Node.js 20+, and the Tauri CLI (cargo install tauri-cli --version "^2").
git clone https://github.com/amys94fr/Snap2Link
cd Snap2Link
pnpm install
pnpm tauri dev # hot-reload dev build
pnpm tauri build # produces a signed installer in src-tauri/target/release/bundle/
๐ก Use Cases
- AI prompts โ paste the link directly into Claude Code, Cursor, ChatGPT, or Aider when you need visual context
- Bug reports โ capture the broken UI, paste the link in Jira / GitHub Issues
- Design feedback โ share mockup snippets in Slack / Discord / Notion in seconds
- Documentation โ drop image links straight into READMEs, blog posts, support tickets
- Remote support โ guide a colleague through their screen without launching a screen-share session
- Meeting notes โ snap a slide, link it next to your notes, move on with the meeting
๐ง Configuration (Google OAuth)
End users have nothing to configure. The first launch opens a browser tab on Google's consent page; pick your account; you're done.
For developers / forks wanting to ship under their own OAuth credentials:
- Create a project on console.cloud.google.com
- Enable the Google Drive API
- Credentials โ Create OAuth client โ Desktop application
- Download the JSON, rename it
credentials.json, drop it at the repo root (gitignored)
pnpm tauri build
Snap2Link only requests the minimum scopes:
| Scope | Why |
|---|
drive.file | Read/write only the files Snap2Link itself creates โ never the rest of your Drive |
userinfo.email | Display the connected account in Settings (so "Switch Account" makes sense) |
๐ฃ๏ธ Roadmap
- โ
Region capture ยท OAuth Drive ยท clipboard ยท auto-cleanup ยท hotkey ยท tray
- โ
Auto-updater (signed releases via GitHub)
- โ
winget distribution
- โ
Cross-platform โ Windows, macOS, Linux
- โ
In-app annotations before upload โ pen, rectangle, circle, arrow, text, blur (per-shot Edit / Save prompt)
- โ
Full-screen and window-bound capture modes alongside region selection: switch with
R / F / W from the overlay
- ๐ History pane โ last N screenshots with thumbnails and quick re-share
- ๐ More clouds โ Dropbox, OneDrive, S3-compatible
- ๐ More locales โ French, Spanish, German, Portuguese โฆ
- ๐ Homebrew & Scoop packages
Got an idea? Open an issue โ I read every one.
๐ Sponsor
If Snap2Link saves you time in your AI workflow, consider sponsoring its
development on GitHub Sponsors.
Even $3/month covers the cost of code-signing certificates and keeps
the project actively maintained.
A huge thank you to everyone who supports the work.
๐ค Contributing
PRs welcome. Quick start for contributors:
git clone https://github.com/amys94fr/Snap2Link
cd Snap2Link
pnpm install
pnpm test # 77 frontend tests (Vitest)
cd src-tauri && cargo test --lib # 24 backend tests
CI (test.yml) runs on every push and PR โ tests must stay green for a merge.
The full guide (bug reports, feature proposals, coding style, PR checklist) is in CONTRIBUTING.md. For the release procedure (signing, manifest, GitHub release, winget bump), see docs/RELEASE.md.
Project layout
src/ React + TypeScript frontend
windows/ SetupWizard ยท Settings ยท About ยท Overlay ยท UploaderToast
components/ HotkeyRecorder ยท RetentionControl ยท UpdateChecker
i18n/ i18next + locales/en.json
store/ Zustand global state
lib/keyMap.ts KeyboardEvent โ Tauri shortcut format
src-tauri/ Rust backend
src/commands/ auth ยท config ยท drive ยท screenshot ยท updater
src/tray.rs System tray icon + menu
src/hotkey.rs Global shortcut registration
icons/ App icons (all sizes, generated by `cargo tauri icon`)
๐ License
MIT ยฉ 2025 Steven Abittan.
Built with Tauri v2, React, Tailwind CSS, and Vitest.