Search core · mem · PL
The bot looks for the core offset, the memory offset and the power limit. Every point is measured in a window; a drop turns the point into a boundary and the rig reboots.
The bot tunes the overclock of every NVIDIA card on HiveOS (AMD support is coming) by itself, verifies it for two hours, handles reboots after card drops and protects the power supply. Installation takes a few minutes, the rest it does on its own.
By using the bot you accept the terms and disclaimer: overclocking and reboots put your hardware at risk, and all consequences are yours.
Independent project: not affiliated with, endorsed or sponsored by Hiveon or HiveOS. HiveOS, NVIDIA, Telegram and other names belong to their owners and are mentioned only to describe compatibility.
Four steps. The bot changes the overclock and reboots the rig: for the first hours stay nearby, or at least in Telegram.
Clear the overclock in the panel (the worker's OC tab), otherwise Hive applies its own on top of the bot. Turn off the hashrate-based reboot in Watchdog during tuning: hashrate drops on test points. The miner must be running and reporting hashrate.
No files to download to your computer and upload to the rig. Open the rig's Hive Shell (the >_ icon) and paste one command — it downloads the bot, unpacks it and starts the setup wizard itself. The wizard finds the cards, the miner and the rig name itself and asks about the power supply, the tuning goal and Telegram.
cd /root && wget -qO ocbot.zip https://raw.githubusercontent.com/ocbotauto/ocbot-dist/main/ocbot.zip && unzip -qo ocbot.zip -d /root && cd /root/ocbot && bash install.shRight after install the bot changes nothing yet, until a licence is active. Free, no card needed — 3 days per rig, once:
cd /root/ocbot && python3 -m ocbot --config config.json --trialBought a key on the purchase page? Activate it with one command — no file to copy anywhere, use your own key instead of OC-...:
cd /root/ocbot && python3 -m ocbot --config config.json --activate OC-XXXXX-XXXXX-XXXXX-XXXXXOne key works for one rig: each rig needs its own key and its own activation.
Create a bot with @BotFather, take its token, and get your numeric ID from @userinfobot. The wizard asks for both; you can set them later with a command. Never share the token and never paste it into a chat.
cd /root/hive-oc-bot && python3 -m ocbot --config config.json --telegram-set 'TOKEN' 123456789Use your own token and ID. If Telegram is unreachable from the rig, see Troubleshooting.
The bot starts in about a minute (a pause after boot) and reports every step in Telegram. Send /status to see what each card is doing. Tuning takes several hours, and every preset found goes through a two-hour verification.
systemctl status ocbot --no-pager | head -n 5; tail -n 10 /root/hive-oc-bot/ocbot.logIf Telegram does not work, the state is visible here.
What the bot does with a card from the first start to a working preset.
The bot looks for the core offset, the memory offset and the power limit. Every point is measured in a window; a drop turns the point into a boundary and the rig reboots.
The best preset found runs under load for two hours. If it fails, a spare one is taken and the search continues with a larger safety margin.
efficiency: maximum hashrate per watt. compromise: maximum hashrate while efficiency stays within the given tolerance of the best. hashrate: maximum hashrate, power is split within the PSU budget.
On top of the offsets, core and memory clocks are locked. It is enabled per card and tuned on a ready preset. With the hashrate goal and a PSU-limited rig the lock usually gives no gain; with efficiency and compromise the gain is noticeable. For rgminer the bot then raises the core offset under the lock.
A drop at the overclock boundary: safe profile and reboot. A drop on mild settings: a ladder of reboots, then the card is marked suspect or faulty.
The sum of the cards' PL limits stays within the PSU budget. With several PSUs you can say which slots sit on which. The hashrate goal splits the limit by the cards' potential.
A card can be given by slot number, label or the last characters of its UUID: /card 3. The full list is always available through /help. The bot's messages are in Russian.
/statusState of all cards and presets/cardOne card in detail: /card 3/profilesReady presets/historyCard history: /history 3/slotsPer-slot statistics/tableRig summary table (max, min, best efficiency), CSV file/tuneRe-tune one card: /tune 3/newsearchNew search: /newsearch 3 (one card) or /newsearch all (whole rig)/restoreRestore the previous preset without a new search: /restore 3 or /restore all/verifyTwo-hour verification of a card: /verify 3/optimizeDetailed search around a ready preset: /optimize 3, /optimize all, /optimize cancel/modeTuning goal: efficiency, compromise, hashrate; one card: /mode 3 hashrate/paramsCard mode: /params 3 4 (adds core and memory clock locks), /params all 4, /params 3 2/safeApply safe settings to the cards/stopStop the automation/resumeResume the automation/faultyMark a card as faulty: /faulty 3 [off]/plPower lock: /pl 3 150 or /pl 3 off/psuPSU load; change inputs: /psu 1400 1200 [base]/balancePower limit split: /balance (show), /balance run (distribute), /balance deep (dense search)/exportExport presets as a file/modelsCatalog of best presets by card model/modelPresets of one model: /model 3070/catalogCatalog file to share (no UUIDs or rig names)/helpList of commandsThe same without Telegram. Run each command from the bot folder:
cd /root/hive-oc-bot && python3 -m ocbot --config config.json --table--service install | install autostart and start the bot; stop / start / restart / status / remove to manage it |
--mode compromise --tolerance 3 | change the goal: efficiency, compromise (tolerance in %), hashrate; show prints the current one |
--mode hashrate --card 3 | goal for one card; --mode rig returns it to the common goal |
--params all 4 | "4 parameters" mode (core and memory clock lock); --params 3 2 returns to two parameters |
--table | rig summary table: max, min and best efficiency of every card |
--restore 3 | restore the previous verified preset of a card without a new search (no argument: all cards) |
--optimize 3 | detailed search around a ready preset; --opt-gain 2 sets the gain threshold in % |
--balance show | how cards hit the PSU limit; run distributes the limit, deep searches denser |
--telegram-set 'TOKEN' 123456789 | store the bot token and your Telegram ID (never paste the token in a chat) |
--telegram-proxy http://192.168.3.5:8080 | proxy for Telegram if it is blocked; '' disables it |
--fix-external-gpus | Thunderbolt cards invisible to X: add AllowExternalGpus to the Hive script (then reboot) |
--catalog 3070 | catalog of best presets by model; --catalog-export / --catalog-import to share a file |
--repair | fix false drops recorded when the bot was restarted (stop the bot first) |
--uninstall --yes | remove the bot from the rig completely; --keep-data keeps configs, database and log |
The config, the database and the presets are not touched by an update. Do not update a rig during a two-hour verification: restarting the bot interrupts it.
cd /root/hive-oc-bot && python3 -m ocbot --config config.json --service stop && cd /root && wget -qO hive-oc-bot.zip https://github.com/makar2186/ocbot-dist/raw/main/hive-oc-bot.zip && unzip -qo hive-oc-bot.zip -d /root && cd /root/hive-oc-bot && python3 -m unittest discover -s tests > /tmp/t.log 2>&1 && tail -n 3 /tmp/t.log && python3 -m ocbot --config config.json --service installThe output should end with OK.
cd /root/hive-oc-bot && python3 -m ocbot --config config.json --service stopcd /root/hive-oc-bot && python3 -m ocbot --config config.json --service startAfter stop the bot does not start after a reboot either.
cd /root/hive-oc-bot && python3 -m ocbot --config config.json --uninstall --yesRemoves the service, the autostart and the folder. Add --keep-data to keep the configs and the database.
Common cases and what to do.
Wait a minute: there is a pause before the start. Then check the service and the autostart.
systemctl status ocbot --no-pager | head -n 8; crontab -l | grep ocbotIf the service is missing or was stopped with --service stop, run --service install.
Telegram may be blocked by your provider. Set a proxy, and read the state from the log until it works.
cd /root/hive-oc-bot && python3 -m ocbot --config config.json --telegram-proxy http://192.168.3.5:8080cd /root/hive-oc-bot && python3 -m ocbot --config config.json --telegram-testThe bot could not find a stable preset for it and stopped the automation so as not to torture the card. Check power, riser and temperature, then start the search again with /tune 3.
X disables external GPUs by default (/var/log/Xorg.0.log says "external GPUs have not been enabled"). The bot can add the needed option to the Hive script. Reboot the rig afterwards.
cd /root/hive-oc-bot && python3 -m ocbot --config config.json --fix-external-gpusnvidia-smi -L | wc -l; DISPLAY=:0 nvidia-settings -q gpus | grep -c "\[gpu:"The two numbers must match the number of cards.
A Hive image update overwrites the script: repeat the command.
Hive may have applied its own overclock on top. Make sure the overclock is cleared in the panel and check /status.
Terms of use. Read before installing.