A robust automation tool that sends text to windows at regular intervals. Perfect for keeping coding agents engaged with prompts like "continue" or "keep going". Now with window targeting and bulletproof installation!
The app successfully capturing and focusing the "Untitled * — Kate" window with real-time window detection and precise targeting!
- 🎯 Window Capture: Capture and target specific windows instead of just the active window
- ⚙️ Simple GUI: Easy-to-use interface with start/stop controls
- ⏱️ Configurable Interval: Set custom time intervals (0.5-120 minutes)
- 📝 Custom Text: Send any text you want to the targeted window
- 🔄 Automatic Enter: Automatically presses Enter after sending text
- ⏰ Real-time Countdown: Shows when the next text will be sent
- 🖥️ Background Operation: Runs in the background while you work
- 🔧 Auto-Setup Verification: Automatically checks and fixes common configuration issues
- 🌐 Wayland & X11 Compatible: Works on modern Wayland and legacy X11 desktop environments
Super Simple - One Command:
curl -fsSL https://raw.githubusercontent.com/user/repo/main/install.sh | bashWith Virtual Environment:
curl -fsSL https://raw.githubusercontent.com/user/repo/main/install.sh | bash -s -- --venvThe installer automatically:
- ✅ Installs all system dependencies
- ✅ Sets up Python environment (optional venv)
- ✅ Configures ydotool daemon and permissions
- ✅ Tests functionality and provides fixes
- ✅ Creates convenient launcher script
-
Clone or download the repository:
git clone https://github.com/user/repo.git cd dunkingbird -
Run the install script:
chmod +x install.sh ./install.sh
-
Or install manually:
sudo apt update sudo apt install -y python3-tk ydotool xclip xdotool python3-venv pip3 install --user pynput sudo ydotoold &
sudo apt update && sudo apt install -y python3-tk ydotool xclip && sudo ydotoold & sleep 2 && python3 dunking_bird.pyWayland (Modern):
- ✅ GNOME Shell
- ✅ KDE Plasma
- ✅ Sway
- ✅ Hyprland
- ✅ Other wlroots compositors
X11 (Legacy):
- ✅ GNOME (X11 mode)
- ✅ KDE (X11 mode)
- ✅ i3 / i3-gaps
- ✅ XFCE
- ✅ Any X11 window manager
-
Launch the application:
./run_dunking_bird.sh # If using installer # OR python3 dunking_bird.py # Direct launch
-
Configure your settings:
- Set the interval in minutes (0.5-120 minutes, default: 10)
- Enter the text you want to send (default: "continue")
-
Target a specific window (NEW!):
- Click "Capture Window" button
- The currently active window will be captured and targeted
- See captured window info displayed in blue text
- All future text will go to this specific window
-
Test your setup:
- Click "Test Send" to immediately send text with 2-second countdown
- Verify the text reaches your target window
-
Start automation:
- Click "Start" to begin automatic sending
- Real-time countdown shows time until next send
- Click "Stop" to pause
Mode 1: Active Window (Default)
- Text sent to whatever window is currently active
- Traditional behavior, good for simple use cases
Mode 2: Captured Window (NEW!)
- Click "Capture Window" to lock onto a specific window
- Text always sent to that window, even if it's not active
- Perfect for targeting specific terminals, coding agents, etc.
- 🤖 Coding Agents: Keep AI assistants engaged ("continue", "keep going", "proceed")
- 💻 Terminal Sessions: Send commands to specific terminals automatically
- 📱 Chat Applications: Send regular messages to specific chat windows
- 🎮 Gaming: Send periodic inputs to game windows
- 🔧 Development: Keep development servers or tools active
- Start your AI coding assistant (Claude, ChatGPT, etc.)
- Launch Dunking Bird
- Click "Capture Window" while the AI chat is active
- Set interval to 15 minutes, text to "continue with the implementation"
- Click Start - now your AI stays engaged automatically!
- Open your terminal or SSH session
- Run Dunking Bird
- Capture the terminal window
- Set a short interval (1 minute) with a harmless command like "echo 'alive'"
- Keep your session from timing out
- Start your development server in a terminal
- Capture that terminal window
- Send periodic commands to check status or restart services
Dunking Bird automatically detects and offers to fix common issues:
- Setup Issues: Missing dependencies, daemon not running
- Permission Problems: Socket permissions, user group membership
- Configuration: Auto-starts ydotool daemon, fixes permissions
❌ "ydotool: No such device"
sudo ydotoold &
sleep 2
# Try running the app again❌ "Permission denied" on socket
sudo chmod 666 /tmp/.ydotool_socket
# OR add user to input group:
sudo usermod -a -G input $USER
# (logout/login required)❌ "ModuleNotFoundError: tkinter"
sudo apt install python3-tk❌ Window capture not working
- X11: Install
sudo apt install xdotool - Wayland/Sway: Ensure
swaymsgis available - Other Wayland: Limited window detection, use active window mode
❌ Text not reaching target
- Ensure target window can accept keyboard input
- Try "Test Send" button to verify functionality
- Check that captured window still exists
- Re-capture window if target application was restarted
❌ Installation issues
# Clean install using the automated script
curl -fsSL https://raw.githubusercontent.com/user/repo/main/install.sh | bash- Run
./install.shfor automatic dependency checking - Check installation log:
cat install.log - Verify ydotool:
ydotool type "test"
- OS: Ubuntu 20.04+ / Debian 10+ / other apt-based distros
- Python: 3.6+ (usually pre-installed)
- Memory: 50MB RAM
- Desktop: Any X11 or Wayland environment
python3-tk- GUI frameworkydotool- Modern input automation (Wayland compatible)xclip- Clipboard operations (fallback)xdotool- X11 window management (optional)pynput- Python input library (fallback)
"Keeps my Claude coding sessions active for hours! Game changer for long development projects."
"Perfect for maintaining SSH connections and development servers. Set it and forget it."
"Works flawlessly on both my Wayland laptop and X11 desktop. Installation was super smooth."
Ready to keep your systems engaged? Install now with one command! 🚀

