Hypothetically
Let me paint the picture real quick — you’ve got five, maybe ten bots, each trading different tokens on Hive Engine. One’s flipping SWAP.LTC, another’s scalping SWAP.ETH, maybe there’s a DOGE one throwing hands with the meme market. All doing their thing.
But what’s not working?
You.
You’re stuck opening terminal windows like a server DJ. CTRL+TAB fatigue. Zero visibility. One crashes and you don’t even notice for an hour.
So I fixed it. Enter dashboard.py. It’s the no-BS control panel for managing and monitoring all your Hive bots in one terminal window.
Here’s the deal:
It’s like tmux, but baked into Python — and without the overhead.
Here’s the bot list:
BOT_SCRIPTS = [
("LTC Bot", "uni_ltc.py"),
("ETH Bot", "uni_eth.py"),
("BTC Bot", "uni_btc.py"),
("DOGE Bot", "uni_doge.py"),
]
Each one is a tuple: friendly name, script name.
Color coding for visibility:
BOT_COLORS = {
"LTC Bot": "\033[96m",
"ETH Bot": "\033[92m",
"BTC Bot": "\033[93m",
"DOGE Bot": "\033[95m",
}
RESET_COLOR = "\033[0m"
Here’s the heart of it:
def run_bot(name, script):
color = BOT_COLORS.get(name, "")
print(f"{color}[DASHBOARD] Launching {name} ({script})...{RESET_COLOR}")
proc = subprocess.Popen(
["python", script],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True
)
while True:
line = proc.stdout.readline()
if not line:
break
print(f"{color}[{name}] {line.strip()}{RESET_COLOR}")
And we launch everything in threads:
for name, script in BOT_SCRIPTS:
t = threading.Thread(target=run_bot, args=(name, script), daemon=True)
t.start()
threads.append(t)
Daemon threads keep the show running. No blocking. One dies? The rest live.
dashboard.pyimport subprocess
import threading
import time
BOT_SCRIPTS = [
("LTC Bot", "uni_ltc.py"),
("ETH Bot", "uni_eth.py"),
("BTC Bot", "uni_btc.py"),
("DOGE Bot", "uni_doge.py"),
]
BOT_COLORS = {
"LTC Bot": "\033[96m",
"ETH Bot": "\033[92m",
"BTC Bot": "\033[93m",
"DOGE Bot": "\033[95m",
}
RESET_COLOR = "\033[0m"
def run_bot(name, script):
color = BOT_COLORS.get(name, "")
print(f"{color}[DASHBOARD] Launching {name} ({script})...{RESET_COLOR}")
proc = subprocess.Popen(
["python", script],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True
)
while True:
line = proc.stdout.readline()
if not line:
break
print(f"{color}[{name}] {line.strip()}{RESET_COLOR}")
def main():
threads = []
for name, script in BOT_SCRIPTS:
t = threading.Thread(target=run_bot, args=(name, script), daemon=True)
t.start()
threads.append(t)
print("[DASHBOARD] Monitoring bots. Press Ctrl+C to exit.")
try:
while True:
time.sleep(2)
except KeyboardInterrupt:
print("[DASHBOARD] Exiting...")
if __name__ == "__main__":
main()
This little dashboard gave me peace of mind. I went from chasing bot logs across tabs to having one central command center that tells me what’s happening in real time.
If you're running multiple bots for multiple Hive Engine tokens — and you’re doing it without this kind of visibility — you're flying blind.
This is free.
This is clean.
This is how I do it.