No description
- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| clipboard_windows.go | ||
| clipboard_windows_test.go | ||
| flags.go | ||
| go.mod | ||
| input_unsupported.go | ||
| input_windows.go | ||
| main.go | ||
| main_test.go | ||
| posts.txt | ||
| README.md | ||
| rumbleposter.exe | ||
rumbleposter
A small Go CLI that automates posting into an online chat by driving the mouse and keyboard. Each post is one cycle:
- left-click at the current mouse cursor position,
- paste a random line from your posts file (Ctrl+V),
- press Enter.
It has no dependencies and no CGO — mouse clicks, keystrokes, and the clipboard
go straight through the Win32 API (user32!SendInput, CF_UNICODETEXT).
Build
go build -o rumbleposter.exe .
Requires Go 1.26+. Posting works on 64-bit Windows; the tool still builds and
runs -dry-run elsewhere.
Usage
rumbleposter [options]
| Option | Default | Meaning |
|---|---|---|
-file, -f |
posts.txt |
File with the lines to post, one per line |
-interval, -i |
30s |
Wait between posts |
-delay, -d |
10s |
Wait before the first post |
-jitter, -j |
0 |
Add a random 0..J on top of each interval |
-count, -n |
0 |
Stop after N posts (0 = until Ctrl+C) |
-dry-run |
off | Print the lines instead of clicking and typing |
Examples:
rumbleposter -f posts.txt -i 45s -d 15s
rumbleposter -f posts.txt -i 1m -j 20s -n 10
rumbleposter -f posts.txt -i 5s -dry-run
How to run it
The click happens wherever the cursor already is — rumbleposter never moves the mouse. So:
- Start the tool, giving yourself enough
-delayto get ready. - During that delay, move the mouse pointer over the chat's message box.
- Leave it there. Every
-interval, the click lands on the input box, the line is pasted, and Enter sends it.
Press Ctrl+C at any time to stop.
Posts file
One message per line. Blank lines and lines starting with # are skipped, and
surrounding whitespace is trimmed:
# rumbleposter picks one line at random for each post.
Let's go!
Great stream today
Hello from the chat
A line is picked at random each time, independently, so repeats are possible.
Notes
- The tool uses the system clipboard to paste, so it overwrites whatever you have copied. It does not restore the previous contents.
- Keep the chat window focused. The synthesized click and keystrokes go to
whatever window is under the cursor / has focus at that moment, so an
interruption (a popup stealing focus, you clicking elsewhere) can send the
text somewhere you did not intend.
-dry-runis there to rehearse timings. - Automated posting may break the terms of service of the chat platform you
point it at, and many sites rate-limit or ban for it. Set a sane
-intervaland use it where it is allowed.
Tests
go test ./... # includes a real clipboard round-trip
go test -short ./... # skips the test that overwrites your clipboard