A bot for Escape From Tarkov that reads your screen and clicks. It does three jobs, one per tab in the window, and you run one at a time:
- Flea sell. Picks an item out of your stash, reads the price Tarkov suggests, undercuts it, and lists it. Then the next one, until you press Stop.
- Flea snipe. Works a watchlist of items whose trader price is known, searching each one on the flea and buying any offer listed far enough under what a trader will pay for it. You sell those on to the trader yourself.
- Hideout gym. Hits the workout skill check, rep after rep, so a session at the gym does not need you sitting at it.
No memory reading, no injection, no files touched. It looks at the game window the way you do and clicks where you would click.
- Grab the latest
tarkbot-<version>-win64.msifrom Releases. - Run the installer, then launch Tarkbot from the Start menu.
- Have Tarkov open, in fullscreen. Flea sell and flea snipe both want your stash screen; hideout gym wants the workout already running, since it navigates nowhere.
- Pick a tab, set what that mode asks for (where items come from, how far under trader value to buy), pick a background if you care, press Start.
You get 3 seconds after Start to get out of the way. The lamp goes green while it works, red if a pass lands on a screen it did not expect, and it just starts a fresh pass from there. Stop lands mid-pass, not at the end of one, so it stops when you press it.
Windows only. The bot talks to the Tarkov window through user32 directly, so there is no macOS or Linux build and there is not going to be one.
app/ The bot and its GUI. This is the thing that ships.
website/ Next.js marketing site.
dashboard/ Next.js dashboard.
Everything worth knowing about the bot itself is in app/CLAUDE.md: what each
module does, how items are found, how the price reader works, and how the tests run. Short
version:
- Finding things is template matching. Every button lives as a cropped screenshot under
app/interact/reference_images/<target>/, andfind.pylooks for it inside the game window. - Reading prices is not OCR. Tarkov prints prices in a fixed bitmap font, so
ocr.pycuts the number into glyphs and pixel-matches each one. It returns nothing rather than a guess, because a half-read price is a wrong price. A real OCR engine was tried first and read 999 as 666 at full confidence. - Undercutting takes the higher of a percentage off and a flat amount off, so the flat cut wins on expensive items and the percentage wins on cheap ones. The GUI's UNDERCUT dropdown picks the flat cut: 2000, 3000 or 5000 roubles, always against the same 15%.
- The snipe watchlist is
app/snipe_targets.csv, which ships with the app so it needs no network. It holds the item name to search for and what a trader pays for it. Each pass checks every item on it once, in a fresh random order, so nothing is looked at on a schedule. The MARGIN dropdown says how many roubles under trader value an offer has to be before it gets bought.
cd app
pip install -r requirements.txt
python -m gui.app
Requires Python 3.11+. The tests are not pytest, they are scripts that run against the live
game and write a picture of what they saw to app/tests/output/. Several need no game at all,
among them python tests/test_price_corpus.py, python tests/test_snipe_loop.py,
python -m interact.sell and python -m snipe_bot.
cd app
python scripts/setup_msi.py bdist_msi --target-version v0.0.0-local
Releases are cut by pushing a vX.Y.Z tag. The tag is the only place a version number exists.
Automating Tarkov is against BSG's rules and can get your account banned. Your account, your call.
