EmberlyEmberly Docs

Flameshot

Configure Flameshot to automatically upload screenshots to Emberly on Linux, macOS, and Windows.

Flameshot is a powerful open-source screenshot tool for Linux, macOS, and Windows. Emberly integrates via a custom upload script.

How It Works

  1. Capture a screenshot with Flameshot
  2. Flameshot passes the image to the Emberly upload script
  3. The script uploads to the Emberly API
  4. The shareable URL is copied to clipboard automatically

Installation

Install Flameshot

Ubuntu / Debian:

sudo apt-get update && sudo apt-get install flameshot

Fedora / RHEL:

sudo dnf install flameshot

Arch:

sudo pacman -S flameshot

macOS:

brew install flameshot

Windows:

winget install flameshot

Get the Upload Script

  1. Go to Dashboard → Settings → Profile → Upload Tools
  2. Under "Flameshot", click "Download Script"
  3. Save it as emberly-upload.sh
  4. Make it executable:
chmod +x emberly-upload.sh

Configure Flameshot

Linux (GUI)

  1. Open Flameshot → Configuration → General
  2. Enable "Upload after capture" or configure a custom script
  3. Set the script path to your emberly-upload.sh

Linux (Command Line)

Add to your shell configuration or bind to a hotkey:

flameshot gui --raw | emberly-upload.sh -

Or use a keyboard shortcut in your WM/compositor pointing to:

/path/to/emberly-upload.sh

Windows

Configure Flameshot to run a PowerShell script after capture. See the PowerShell guide for the upload script.


Upload Script Reference

The generated script uses your token and works with any POSIX shell:

#!/bin/bash
# Emberly Flameshot Upload Script
 
EMBERLY_TOKEN="YOUR_TOKEN_HERE"
API_URL="https://embrly.ca/api/files"
 
# Read from file or stdin
if [ -n "$1" ] && [ -f "$1" ]; then
  FILE_ARG="@$1"
elif [ "$1" = "-" ]; then
  # Piped from Flameshot
  TMP=$(mktemp /tmp/emberly-XXXXXX.png)
  cat > "$TMP"
  FILE_ARG="@$TMP"
  CLEANUP="$TMP"
fi
 
RESPONSE=$(curl -s -X POST \
  -H "Authorization: Bearer $EMBERLY_TOKEN" \
  -F "file=$FILE_ARG" \
  "$API_URL")
 
URL=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['url'])" 2>/dev/null)
 
if [ -n "$URL" ]; then
  echo "$URL" | xclip -selection clipboard 2>/dev/null || \
  echo "$URL" | xsel --clipboard --input 2>/dev/null || \
  echo "$URL" | pbcopy 2>/dev/null || true
  echo "Uploaded: $URL"
fi
 
[ -n "$CLEANUP" ] && rm -f "$CLEANUP"

Troubleshooting

ProblemSolution
Script not foundCheck the path in Flameshot config; use an absolute path
Upload failsVerify EMBERLY_TOKEN is correct in the script
URL not copiedInstall xclip or xsel on Linux: sudo apt install xclip
Blank screenshot on WaylandUse flameshot gui instead of flameshot screen

On this page