Skip to main content
Glama

cleanshot-cli

Kommandozeile für CleanShot X auf macOS, in Python. Neuschreibung des Go-Werkzeugs XiaofengXie16/cleanshot-cli.

Jeder Befehl wird in eine cleanshot://-URL übersetzt und per open an die App übergeben. CleanShot X muss installiert sein. Das URL-Schema meldet nicht zurück, ob die Aktion geklappt hat. Die Ausgabe sagt deshalb nur „übergeben“.

Installation

uv tool install .          # stellt den Befehl `cleanshot-cli` bereit
# oder im Projekt:
uv sync && uv run cleanshot-cli --help

Related MCP server: Screenshot MCP (macOS)

Befehle

Befehl

URL-Befehl

Optionen

capture-area

capture-area

-a, -d, --x --y --width --height

capture-fullscreen

capture-fullscreen

-a, -d

capture-window

capture-window

-a

capture-previous-area

capture-previous-area

-a

self-timer

self-timer

-a, -d

scrolling-capture

scrolling-capture

-a

record-screen

record-screen

-d, --x --y --width --height

capture-text

capture-text

-f

annotate

open-annotate

-f

pin

pin

-f

settings

open-settings

-t

annotate-clipboard

open-from-clipboard

all-in-one

all-in-one

history

open-history

restore

restore-recently-closed

toggle-desktop-icons / hide-… / show-…

gleichnamig

quick-access

add-quick-access-overlay

Optionen:

  • -a, --action: copy, save, annotate, upload, pin

  • -d, --display: Bildschirm, ab 1

  • --x --y --width --height: nur alle vier zusammen; 0 ist eine gültige Koordinate

  • -f, --file: Bilddatei, muss existieren, wird zum absoluten Pfad

Globale Optionen (vor dem Befehl): -v/--verbose gibt die URL aus, -q/--quiet unterdrückt die Ausgabe, -n/--dry-run gibt nur die URL aus und ruft nichts auf, --version.

cleanshot-cli capture-fullscreen -a copy
cleanshot-cli capture-area --x 0 --y 0 --width 800 --height 600 -a upload
cleanshot-cli -n capture-text -f "$HOME/Desktop/Bild mit Leerzeichen.png"
cleanshot-cli settings -t shortcuts

MCP-Server

cleanshot-cli mcp startet einen MCP-Server über stdio. Dafür braucht es das optionale Extra mcp:

uv tool install '.[mcp]'
claude mcp add cleanshot -- cleanshot-cli mcp

Ohne Installation, direkt aus dem Projekt:

claude mcp add cleanshot -- uv --directory ~/src_own/cleanshot-cli run --extra mcp cleanshot-cli mcp

Für Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "cleanshot": { "command": "cleanshot-cli", "args": ["mcp"] }
  }
}

Werkzeug

Zweck

capture

Aufnahme starten (mode: area, fullscreen, window, previous_area, self_timer, scrolling)

capture_image

Aufnehmen, speichern und das Bild an den Client zurückgeben

latest_capture

Neueste Aufnahme aus dem Speicherordner zurückgeben

record_screen

Bildschirmvideo starten

capture_text

OCR, Ergebnis landet in der Zwischenablage

annotate, pin

Editor öffnen bzw. Bild anheften, optional mit Datei

open_settings

Einstellungen öffnen

run_simple

Befehle ohne Parameter (history, restore, Schreibtischsymbole, …)

Nur capture_image und latest_capture liefern ein Bild. Alle anderen Werkzeuge melden nur, dass der Befehl übergeben wurde. Bei area, window und scrolling muss ein Mensch am Bildschirm auswählen.

Den Speicherordner liest der Server aus den CleanShot-Einstellungen (defaults read pl.maketheweb.cleanshotx exportPath). Mit CLEANSHOT_EXPORT_DIR lässt er sich überschreiben, Rückfall ist ~/Desktop. Bilder mit einer Kante über 1568 px werden vor der Rückgabe per sips verkleinert.

Unterschiede zur Go-Vorlage

  • x=0 / y=0 gehen nicht mehr verloren.

  • Leerzeichen werden als %20 statt + kodiert.

  • Ungültige Werte für --action/--display, unvollständige Bereiche und fehlende Dateien werden abgelehnt, bevor CleanShot aufgerufen wird.

  • Erfolgsmeldungen versprechen nichts, was das URL-Schema nicht bestätigt.

  • --version, --dry-run, --verbose, --quiet und Tests sind neu.

  • pin nimmt zusätzlich --file.

Entwicklung

uv sync --extra mcp
uv run pytest
uv run ruff check . && uv run ruff format --check .
uv run mypy

Die Tests ersetzen subprocess.run per autouse-Fixture und rufen CleanShot nie wirklich auf.

Lizenz

MIT, siehe LICENSE. CleanShot X ist ein kommerzielles Produkt von MakeTheWeb; dieses Projekt steht in keiner Verbindung dazu.

Related MCP Connectors

Related MCP Servers