Automatic Bongo Cat Clicker (updated)
(69 ratings)
May 29, 2025 @ 1:25pm8,78743
AchievementsEnglish
Script
But for real now
Bongo cat seems to detect auto clicker by looking for button depresses, so one can't use programs that employ press commands. Instead use button down and button up in quick succession. I have made a simple script for that in python that gets the job done and you can use to farm clicks. You can directly download the file from Github which is linked at the end of this guide or you can copy it from here.import pydirectinput
import win32gui
import win32con
import time
import random
import threading
import keyboard
import tkinter as tk
from tkinter import font as tkfont
pydirectinput.PAUSE = 0
# ── CONFIG ──────────────────────────────────────────────────────────────────
WINDOW_TITLE = "BongoCat" # adjust if title differs in your language
TOGGLE_KEY = "p"
INTERVAL_MIN = 0.02
INTERVAL_MAX = 0.03
HOLD_MIN = 0.03
HOLD_MAX = 0.04
DEBOUNCE = 0.4
KEYS = [
'a','b','c','d','e','g','h','i','j','k','l','m',
'n','o','q','r','s','t','u','v','w','x','y','z',
'0','1','2','3','4','5','6','7','8','9',
]
# ────────────────────────────────────────────────────────────────────────────
running = False
lock = threading.Lock()
_last_toggle = 0.0
status_label = None
btn_toggle = None
root = None
def find_and_focus():
hwnd = win32gui.FindWindow(None, WINDOW_TITLE)
if hwnd and win32gui.IsWindow(hwnd):
win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)
win32gui.SetForegroundWindow(hwnd)
return True
return False
def press_key(key):
try:
pydirectinput.keyDown(key)
time.sleep(random.uniform(HOLD_MIN, HOLD_MAX))
pydirectinput.keyUp(key)
except Exception as e:
print(f"[press] Error on '{key}': {e}")
def auto_press_loop():
global running
last_focus = 0.0
while True:
with lock:
is_running = running
if not is_running:
time.sleep(0.05)
continue
# refocus Bongo Cat every 10 seconds so the GUI never steals focus
now = time.time()
if now - last_focus > 10.0:
find_and_focus()
last_focus = now
try:
press_key(random.choice(KEYS))
except Exception as e:
print(f"[loop] Error: {e}")
time.sleep(random.uniform(INTERVAL_MIN, INTERVAL_MAX))
def set_status(text, color):
if status_label and root:
root.after(0, lambda: status_label.config(text=text, fg=color))
def toggle_running():
global running, _last_toggle
now = time.time()
if now - _last_toggle < DEBOUNCE:
return
_last_toggle = now
with lock:
running = not running
state = running
if state:
if not find_and_focus():
set_status("Window not found", "#ffaa00")
with lock:
running = False
return
set_status("● Running", "#00ff88")
btn_toggle.config(text="■ Stop P")
else:
set_status("● Stopped", "#ff4444")
btn_toggle.config(text="▶ Start P")
def on_hotkey(event):
toggle_running()
def on_close():
global running
with lock:
running = False
root.destroy()
def build_gui():
global root, status_label, btn_toggle
root = tk.Tk()
root.title("Bongo Cat Clicker")
root.geometry("280x160")
root.resizable(False, False)
root.configure(bg="#1e1e2e")
root.protocol("WM_DELETE_WINDOW", on_close)
root.attributes('-topmost', True)
root.attributes('-alpha', 0.95)
f_title = tkfont.Font(family="Segoe UI", size=13, weight="bold")
f_status = tkfont.Font(family="Segoe UI", size=11)
f_btn = tkfont.Font(family="Segoe UI", size=10)
f_hint = tkfont.Font(family="Segoe UI", size=8)
tk.Label(root, text="Bongo Cat Clicker :3",
font=f_title, bg="#1e1e2e", fg="#cdd6f4").pack(pady=(14, 2))
status_label = tk.Label(root, text="● Stopped",
font=f_status, bg="#1e1e2e", fg="#ff4444")
status_label.pack(pady=2)
btn_toggle = tk.Button(
root, text="▶ Start P", font=f_btn,
bg="#313244", fg="#cdd6f4", activebackground="#45475a",
relief="flat", padx=12, pady=6, cursor="hand2",
command=toggle_running
)
btn_toggle.pack(pady=10)
tk.Label(root, text="Bongo Cat must be open to start",
font=f_hint, bg="#1e1e2e", fg="#6c7086").pack()
return root
if __name__ == "__main__":
keyboard.on_press_key(TOGGLE_KEY, on_hotkey)
threading.Thread(target=auto_press_loop, daemon=True).start()
root = build_gui()
print("INFO P = Start/Stop | Close window to exit")
root.mainloop()
Use this in VS code or any other python coding environment (I myself used Pycharm) and install all used library's:
- pydirectinput
- pywin32
- keyboard
Installing libraries can be done trough the Command Prompt by running:
pip install Libraryname
like for example: pip install pydirectinput
will install pydirectinput. Otherwise the program will throw an ModuleNotFound error.
Or you can just simply download all at once:
pip install pydirectinput pywin32 keyboard
The program starts stopped and can be activated and stopped again by pressing P and closed by just simply closing the window.
The code just presses and depresses every available button in the Bongo Cat Tab that does not trigger a function.
In the first version, you had to make sure no text field was focused, because if one was, your whole PC would start to lag. This has been fixed in the new version keystrokes are now sent directly to the Bongo Cat window, where they don't affect anything else, so you can just start it without any worries
Feel free to improve the code in the comments :). Enjoy the lazy and fast 100% completion or just the automated clicks.
GitHub Link
Because of a good request from @Potoka I created a Github repository for future updates and improvements and you can even download it as a EXE if you don't have any expirience with Python or want to make your live easier!
Link to the Repository[github.com]
That would be all for now I hope you enjoy this new version ^^
Also many thanks to Nugorra for making this possible with the EXE file go check him out :)
Link to the Repository[github.com]
That would be all for now I hope you enjoy this new version ^^
Also many thanks to Nugorra for making this possible with the EXE file go check him out :)