Skip to content
BotServBotServ
MausbotpyautoguipynputAutoHotkeyxdotoolMaus automatisierenAuto-Clicker

Mausbot selbst bauen: Maus-Automatisierung mit Python und KI

Was ein Mausbot ist, welche Tools es gibt und wie Du mit Python und pyautogui einen eigenen Mausbot baust, inklusive Zufallsbewegung, Bilderkennung und KI-Anbindung.

S

schutzgeist

11 min read
Mausbot: Maus-Automatisierung mit Python

Was dieser Artikel behandelt

  • Was ein Mausbot ist und wie er sich von Makros, Auto-Clickern und KI-Agenten unterscheidet.
  • Welche Tools es für Windows, Linux und macOS gibt, kostenlos und Open Source.
  • Ein komplettes Python-Grundgerüst mit Zufallsbewegung, Pausen und Notaus-Schalter.
  • Wie Bilderkennung und ein lokales LLM den Bot zum reagierenden Agenten machen.
  • Vergleich mit Agenten wie OpenClaw und die Systemvoraussetzungen beider Ansätze.

Was ist ein Mausbot?

Ein Mausbot ist ein Programm, das Mausbewegungen, Klicks und Scrollen automatisiert. Er bewegt den Cursor, klickt auf Buttons, zieht Dateien per Drag-and-Drop oder scrollt durch Listen, ohne dass Du die Maus anfasst.

Drei verwandte, aber verschiedene Dinge werden oft durcheinander geworfen:

Der Auto-Clicker ist die einfachste Form. Er klickt immer wieder auf dieselbe Stelle oder dieselbe Taste in einem festen Takt. Gut für monotone Klickarbeit, aber blind für alles andere.

Das Makro nimmt eine Abfolge von Eingaben auf und spielt sie ab. Ein Makro wiederholt exakt, was Du aufgezeichnet hast. Es reagiert nicht auf Veränderungen am Bildschirm.

Der echte Mausbot geht weiter: Er prüft Bedingungen, wartet auf Ereignisse, sucht Bilder auf dem Bildschirm und trifft Entscheidungen. Sobald ein Bot auf Inhalte reagiert statt nur Koordinaten abzuspielen, wird er zur echten Automatisierung.

Der Unterschied zu einem vollwertigen KI-Agenten ist die Wahrnehmung: Der klassische Mausbot sieht nur Pixelmuster, der Agent versteht, was er sieht. Die Grenze verschwimmt, sobald Du ein Sprachmodell einbaust, dazu später mehr.

Mausbot vs. Agenten wie OpenClaw oder Computer Use

Systeme wie OpenClaw, Hermes-basierte Agenten oder die Computer-Use-Funktionen großer Modelle werden oft in denselben Satz mit Mausbots geworfen. Technisch liegen sie auf zwei verschiedenen Ebenen.

Der Mausbot ist die Hand. Er hat keine Wahrnehmung und keinen Plan, er führt aus: bewege zu (x,y), klicke, warte. Sein Verhalten ist deterministisch, vorhersagbar und wiederholbar.

Der Agent ist das Gehirn. Ein Agent wie OpenClaw nimmt den Bildschirm oder den DOM wahr, zerlegt eine Aufgabe in Zwischenschritte und entscheidet per Sprachmodell, was als Nächstes passiert. Interessant dabei: Diese Agenten benutzen intern genau dieselbe Schicht wie der Mausbot, um ihre Entscheidungen auszuführen. OpenClaw ruft letztlich auch nur Funktionen auf, die den Cursor bewegen und klicken. Der Agent hat einen Mausbot eingebaut, der Mausbot hat kein Gehirn.

EigenschaftMausbot (pyautogui & Co.)Agent (OpenClaw, Computer Use)
WahrnehmungKoordinaten, PixelmusterScreenshots, DOM, Accessibility-Tree
EntscheidungFeste Regeln und SchleifenSprachmodell plant Zwischenschritte
VerhaltenDeterministisch, wiederholbarProbabilistisch, unvorhersehbarer
UI-ÄnderungenBricht sofortPasst sich meist an
KostenNull, läuft offlineModellkosten oder lokale GPU
EinsatzWiederholbare KlickarbeitOffene Aufgaben mit Planung

Daraus folgt die Faustregel: Für einen Ablauf, der immer gleich ist, ist der Mausbot die bessere Wahl, weil er zuverlässig, schnell und kostenlos ist. Sobald die Aufgabe Variablen, Urteile oder unterschiedliche Situationen enthält, lohnt der Agent, der dann intern ohnehin auf Maussteuerung zugreift.

Womit man einen Mausbot eher vergleichen kann

Die eigentlichen Geschwister eines Mausbots liegen nicht im KI-Bereich, sondern in der klassischen UI-Automation:

AutoHotkey-Makros sind der direkte Windows-Verwandte. Dieselbe Idee, eigene Skriptsprache, seit Jahren bewährt.

RPA-Tools wie UiPath, Power Automate Desktop oder Robocorp sind die Enterprise-Variante. Gleiche Aufgabe, aber mit UI-Selektoren statt Pixeln, Orchestrierung, Logging und Supportvertrag. Ein pyautogui-Skript ist quasi RPA für eine Maschine.

Selenium und Playwright automatisieren im Browser denselben Job, nur über den DOM statt über den Bildschirm. Für Web-Aufgaben sind sie die stabilere Alternative, weil sie Elemente per Selektor finden statt per Koordinate.

xdotool- und Hammerspoon-Skripte decken unter Linux und macOS dieselbe Nische ab.

Wer diese Tools kennt, hat den richtigen Referenzrahmen: Ein Mausbot ist Scripting am Eingabegerät. Erst wenn ein Sprachmodell die Entscheidungen übernimmt, betritt man das Gebiet der KI-Agenten.

Systemvoraussetzungen im Vergleich

Der größte praktische Unterschied zwischen einem Mausbot und einem KI-Agenten ist nicht die Intelligenz, sondern was der Rechner dafür hergeben muss.

AnforderungMausbot (pyautogui)Agent mit Cloud-ModellAgent mit lokalem LLM
RAMUnter 100 MBUnter 200 MB8 bis 16 GB für ein 7B-Modell
GPUKeineKeineEmpfohlen, sonst langsam
InternetNicht nötigPflicht, jede Entscheidung geht rausNicht nötig
SoftwarePython 3 und pipAPI-Key, Framework wie OpenClawOllama plus Framework
Kosten0 EuroPro Token, bei Dauerbetrieb spürbar0 Euro nach Anschaffung
Grafische OberflächePflichtPflicht für Computer UsePflicht für Computer Use

Drei Punkte fallen auf. Erstens läuft ein Mausbot auf buchstäblich jedem Rechner, der Python kann, inklusive zehn Jahre altem Office-PC oder Raspberry Pi. Zweitens brauchen Agenten immer eine Denk-Ebene: entweder einen kostenpflichtigen API-Zugang, der jede Entscheidung in die Cloud schickt, oder ein lokales Modell, das RAM und idealerweise eine GPU will. Drittens bleibt die Einschränkung für alle gleich: Maus-Automation setzt eine sichtbare grafische Oberfläche voraus. Auf einem headless Server ohne Display gibt es keinen Bildschirm, auf dem ein Bot klicken könnte, dort sind Browser-Automation per Playwright oder API-Aufrufe der richtige Weg.

Wer OpenClaw oder ein Computer-Use-System selbst hosten will, findet die Hardware-Anforderungen im Artikel zu lokalen KI-Agenten. Für den Einstieg reicht oft schon der Mittelweg aus diesem Artikel: pyautogui für die Hände, ein kleines Ollama-Modell für gelegentliche Entscheidungen.

Legitime und grenzwertige Einsätze

Die Technik selbst ist neutral. Entscheidend ist, wofür Du sie einsetzt.

EinsatzEinordnung
UI-Tests in eigener SoftwareLegitim und üblich, Tools wie Sikuli sind dafür gebaut
Repetitive Klickarbeit in eigenen SystemenLegitim, spart Stunden monotone Arbeit
Dateien sortieren, Fotos taggen, MassenumbenennungLegitim
Eigene Anwendung wach haltenLegitim für lokale Skripte
Aktivitätsstatus in Firmen-Software vortäuschenGrenzwertig, kann arbeitsrechtliche Folgen haben
Online-Spiele farmenGegen die Nutzungsbedingungen, Anti-Cheat erkennt es, Bann droht
Klickbetrug auf fremden WerbeanzeigenIllegal, das ist Betrug

Die Faustregel: Auf Deinem System, Deiner Software und Deinen Daten ist ein Mausbot ein Werkzeug. Sobald er Dritten etwas vortäuscht, wird es kritisch.

Welche Tools es gibt

ToolPlattformStärkeGrenze
pyautoguiWindows, Linux, macOSPython-Skripte, Bilderkennung eingebautKein Wayland-Support, unter X11
pynputWindows, Linux, macOSMaus UND Tastatur, auch als ListenerLow-Level-Input, mehr Code nötig
xdotoolLinux (X11)Schnelles Kommandozeilen-ToolFunktioniert nicht unter Wayland
ydotoolLinux (Wayland)Wayland-tauglich, Input auf Kernel-EbeneBraucht uinput-Rechte, Setup-Aufwand
AutoHotkeyWindowsSehr mächtig, eigene SkriptspracheSteile Lernkurve, Windows only
cliclickmacOSTerminal-Tool für KlicksNur einfache Aktionen
HammerspoonmacOSLua-Skripte für Desktop-AutomationLua-Kenntnisse nötig
Mouse JigglerWindowsHardware-/Software-Jiggler, kein SetupTut nur das eine: Wackeln
SikuliXAlle PlattformenBilderkennung per Screenshot-MusterJava-basiert, schwerfällig

Wenn Du programmieren kannst oder willst, ist pyautogui der beste Einstieg. Eine Zeile Installation, und jede Mausaktion ist ein Funktionsaufruf.

Ein eigener Mausbot mit Python

Installiere die Bibliothek und schreibe das Grundgerüst:

pip install pyautogui

Das folgende Skript deckt den Kern ab: Es bewegt die Maus zu zufälligen Punkten auf dem Bildschirm, klickt gelegentlich, macht zufällige Pausen und stoppt sofort, wenn Du die Maus in die obere linke Ecke ziehst. Diese Ecke ist der eingebaute Notaus-Schalter von pyautogui.

import pyautogui
import random
import time

# Failsafe: Maus in die obere linke Ecke ziehen bricht sofort ab
pyautogui.FAILSAFE = True

# Breite und Hoehe des Bildschirms holen
screen_w, screen_h = pyautogui.size()

def zufalls_position():
    # Zufaelliger Punkt mit 50px Rand, damit nichts am Rand passiert
    x = random.randint(50, screen_w - 50)
    y = random.randint(50, screen_h - 50)
    return x, y

def bewege(x, y, dauer=None):
    if dauer is None:
        dauer = random.uniform(0.3, 1.2)
    pyautogui.moveTo(x, y, duration=dauer)

def klicke():
    pyautogui.click()

print("Mausbot laeuft. Maus oben links = Stopp. Ctrl+C beendet.")
try:
    while True:
        x, y = zufalls_position()
        bewege(x, y)

        # In 30 Prozent der Faelle klicken
        if random.random() < 0.3:
            klicke()

        # Zufaellige Pause zwischen 2 und 8 Sekunden
        zeit = random.uniform(2, 8)
        print(f"Pause {zeit:.1f}s, naechste Position ({x},{y})")
        time.sleep(zeit)
except pyautogui.FailSafeException:
    print("Failsafe ausgeloest, Bot gestoppt.")
except KeyboardInterrupt:
    print("Manuell gestoppt.")

Drei Dinge sind dabei wichtig. Erstens duration bei moveTo: Ohne Dauer springt der Cursor sofort, das wirkt unnatürlich und ist in manchen Programmen gar nicht sichtbar. Mit einer Dauer zwischen 0.3 und 1.2 Sekunden sieht die Bewegung aus wie von einer Hand. Zweitens die zufälligen Pausen: Ein fester Takt ist das erste Muster, nach dem Anti-Bot-Systeme suchen. Drittens der Failsafe: Ein Bot, der unkontrolliert weiterklickt, während Du den Cursor nicht mehr bekommst, ist unangenehm. Die Ecke ist Dein Panic-Button.

Vom Koordinaten-Bot zum reagierenden Bot

Koordinaten sind brüchig. Verschiebt sich ein Fenster, klickt der Bot ins Leere. pyautogui kann mit locateOnScreen nach Bildmustern suchen: Du machst einen Screenshot des Buttons, den der Bot finden soll, speicherst ihn als PNG und der Bot sucht ihn auf dem Bildschirm.

import pyautogui
import time

# Screenshot des Ziel-Buttons vorher speichern, z.B. "ok_button.png"
def finde_und_klicke(bild, timeout=30):
    """Sucht ein Bild auf dem Bildschirm und klickt es."""
    ende = time.time() + timeout
    while time.time() < ende:
        pos = pyautogui.locateOnScreen(bild, confidence=0.8)
        if pos:
            pyautogui.click(pos)
            print(f"Gefunden und geklickt: {bild}")
            return True
        time.sleep(0.5)
    print(f"Nicht gefunden: {bild}")
    return False

finde_und_klicke("ok_button.png")
finde_und_klicke("weiter_button.png")

Der Parameter confidence braucht opencv-python als Zusatzpaket. Er sagt, wie genau das Bild übereinstimmen muss. 0.8 ist ein guter Startwert: tolerant genug für kleine Anti-Aliasing-Unterschiede, streng genug gegen Fehltreffer. Damit wird der Bot stabil gegenüber verschobenen Fenstern und ist deutlich brauchbarer.

pip install opencv-python

Ein lokales LLM entscheiden lassen

Der bisherige Bot führt Regeln aus. Wenn Du ein lokales Sprachmodell über Ollama einbaust, kann die KI entscheiden, was als Nächstes passiert. Der Ablauf sieht so aus: Das Skript beschreibt dem Modell die aktuelle Situation, zum Beispiel welche Fenster offen sind oder welchen Text ein Bereich zeigt, und das Modell antwortet mit der nächsten Aktion als JSON.

import json
import urllib.request

def ki_entscheidet(situation):
    """Fragt ein lokales Ollama-Modell nach der naechsten Aktion."""
    prompt = (
        "Du steuerst einen Mausbot. Antworte NUR mit JSON im Format "
        '{"aktion": "klick"|"warte"|"fertig", "grund": "kurzer Grund"}.\n'
        f"Situation: {situation}"
    )
    req = urllib.request.Request(
        "http://localhost:11434/api/generate",
        data=json.dumps({
            "model": "qwen2.5:7b",
            "prompt": prompt,
            "stream": False,
        }).encode(),
        headers={"Content-Type": "application/json"},
    )
    with urllib.request.urlopen(req) as r:
        antwort = json.loads(r.read())["response"].strip()
    return json.loads(antwort)

situation = "Der Dialog 'Update installieren?' ist offen mit den Buttons OK und Abbrechen."
entscheidung = ki_entscheidet(situation)
print(entscheidung)

Das funktioniert mit jedem lokalen Ollama-Modell und verlässt Deinen Rechner nicht. Die Kombination aus Bilderkennung und LLM ist der Punkt, an dem aus dem Mausbot ein richtiger Agent wird. Frameworks wie UI-TARS oder die Computer-Use-Funktion größerer Modelle gehen denselben Weg, nur mit Screenshot-Verständnis statt Pixelmustern. Wenn Dich der Weg in die KI-Agenten-Richtung interessiert, findest Du den Einstieg im Artikel über KI-Agenten und die Grundlagen unter Automatisierung mit lokaler KI.

Sicherheit und Grenzen

Ein paar Dinge sollten Dir bewusst sein, bevor der Bot läuft.

Wayland vs. X11. Unter modernem Linux mit Wayland funktioniert pyautogui nicht mehr, weil Wayland globalen Zugriff auf Eingabegeräte absichtlich sperrt. Dort brauchst Du ydotool oder musst auf eine X11-Session zurück. Das ist ein Design-Feature, kein Bug: Wayland will genau diese Art von Automation auf die Anwendung beschränken, die es angefordert hat.

Anti-Cheat-Systeme. In Online-Spielen werden Mausbots durch Verhaltensanalyse erkannt: zu gleichmäßige Pausen, zu gerade Bewegungen, keine Tippfehler. Viele Spiele bannen Accounts dafür. Für das Ausprobieren eigener Singleplayer-Sachen schadet es niemandem, aber online ist es nicht nur unsportlich, sondern gegen die Bedingungen.

Monitoring am Arbeitsplatz. Ein Bot, der einen Online-Status in Firmen-Software wach hält, während niemand da ist, kann arbeitsrechtlich als Täuschung zählen. Technisch simpel, beruflich riskant.

Der Panic-Button ist Pflicht. Setze FAILSAFE = True und teste den Abbruch einmal, bevor Du den Bot unbeaufsichtigt laufen lässt. Ein Skript, das unkontrolliert klickt, kann auf dem Desktop Schaden anrichten, wenn es in die falschen Fenster gerät.

Häufige Fragen zu Mausbots

Was ist der Unterschied zwischen einem Mausbot und einem Makro? Ein Makro spielt eine feste Aufzeichnung ab und reagiert nicht auf Änderungen. Ein Mausbot prüft Bedingungen, sucht Elemente auf dem Bildschirm und trifft Entscheidungen. Makros sind simpler, Bots sind flexibler.
Ist pyautogui kostenlos? Ja, pyautogui ist Open Source und kostenlos. Es läuft auf Windows, Linux und macOS und wird über pip installiert.
Funktioniert ein Mausbot unter Wayland? Nicht mit pyautogui oder xdotool. Wayland sperrt globalen Mauszugriff. Dort brauchst Du ydotool, das auf Kernel-Ebene arbeitet, oder eine X11-Session.
Kann ein Spiel einen Mausbot erkennen? Ja. Anti-Cheat-Systeme analysieren Bewegungsmuster, Timing und Wiederholbarkeit. Zu regelmäßige Intervalle oder perfekt gerade Bewegungen fallen auf. In Online-Spielen droht ein Bann.
Wie schnell kann ein Mausbot klicken? Technisch bis zu einigen hundert Klicks pro Sekunde. Praktisch solltest Du es langsam halten, damit Anwendungen mitkommen und es nicht auffällt, dass eine Maschine klickt.
Brauche ich Programmierkenntnisse für einen Mausbot? Für die einfachsten Fälle nicht, AutoHotkey oder Mouse Jiggler laufen ohne Code. Sobald Du Entscheidungen oder Bilderkennung willst, ist etwas Python hilfreich.
Was ist der Vorteil von locateOnScreen gegenüber Koordinaten? Koordinaten brechen, wenn sich ein Fenster verschiebt oder ein Dialog anders aufgeht. locateOnScreen sucht das tatsächliche Bild auf dem Bildschirm und findet den Button, egal wo er liegt.
Kann ich einen Mausbot für Tests in meiner eigenen Software nutzen? Ja, das ist ein legitimer Anwendungsfall. Tools wie SikuliX oder pyautogui mit locateOnScreen werden dafür gebaut, um UI-Tests ohne vollwertiges Test-Framework zu schreiben.
Welche Fehler machen Anfänger beim Mausbot-Bauen? Keine Pausen einbauen, harte Koordinaten statt Bilderkennung nutzen und keinen Notaus-Schalter setzen. Alle drei führen zu einem Bot, der unkontrolliert weiterarbeitet, wenn etwas schiefgeht.
Ist ein Mausbot dasselbe wie ein KI-Agent? Nein. Ein klassischer Mausbot führt Regeln aus. Ein KI-Agent versteht Kontext, plant Zwischenschritte und kann mit Sprachmodellen entscheiden. Du kannst einen Mausbot mit einem lokalen LLM erweitern, dann wird er zum Agenten.
Wie halte ich meinen Computer wach ohne Mausbot? Für den Fall, dass Du nur den Sleep-Modus verhindern willst, reicht ein einfacher Tastendruck-Scheduler oder die Systemeinstellungen. Ein Mausbot ist die flexible Lösung, wenn es mehr als nur Wachhalten sein soll.
Kann der Bot auch Tastatur-Eingaben senden? Ja, pyautogui und pynput können beides. Für reine Tastatur-Automation ist pynput die sauberere Wahl, für Kombinationen aus Maus und Tastatur bleibt pyautogui praktisch.
Warum bewegt sich mein Bot ruckartig? Weil die Bewegung ohne duration sofort springt. Gib moveTo eine Dauer zwischen 0.3 und 1.2 Sekunden, dann sieht es wie eine menschliche Hand aus und wird in manchen Programmen erst sichtbar.
Brauche ich für den KI-Teil ein großes Modell? Nein. Für einfache Entscheidungen wie „Klicken oder Warten” reicht ein kleines lokales Modell wie Qwen 2.5 7B über Ollama. Es soll nur strukturiert antworten, keine Romane schreiben.
Kann ich mit dem Bot auch Screenshots analysieren? Ja, pyautogui macht per screenshot() Bilder vom Bildschirm. Kombiniert mit locateOnScreen oder einer lokalen KI wird daraus ein Bot, der auf Inhalte reagiert statt nur Positionen anfährt.

Vom Klick-Roboter zum verstehenden Agenten

Ein Mausbot ist das einfachste Werkzeug für Desktop-Automatisierung: wenige Zeilen Python, ein Panic-Button in der Maus-Ecke und bei Bedarf Bilderkennung statt starrer Koordinaten. Wer mehr will, hängt ein lokales LLM über Ollama davor und lässt die KI entscheiden, was als Nächstes passiert. Dann ist die Grenze zum KI-Agenten erreicht, und der Weg weiter führt über Workflow-Automatisierung zu Systemen, die nicht nur klicken, sondern verstehen.

Zurück zum KI Blog
Share:

Ähnliche Beiträge