clash-jev
Clash Royale bot on a real phone with no trained policy: vision builds a JSON state and Jev picks strategy, card and square each second.
Overview
clash-jev is a bot that plays Clash Royale on a real Android device using Jev to make near real-time decisions on live game data. Because Jev accepts text only, most of the project is computer vision: the device streams H.264 video over adb, OpenCV reads the hand, elixir and towers, and a small network trained on hand-labelled pictures names the troops. Once a second the readings become one JSON game state.
Jev then picks a strategy from a fixed list, then a card, then a square, in about 135 ms per request per the README. The bot checks the play is physically possible, taps it, and logs every decision next to synced video. There is no reinforcement learning and no simulator. An engineering write-up covers the architecture, and recorded matches with every question Jev was asked can be watched online.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which strategy should the bot follow now? | fixed strategy list |
| Choice | Which card should be played? | cards in hand |
| Choice | Which square should it be placed on? | valid squares |
How it works
- Stream the device screen over adb
- Vision extracts hand, elixir, towers and troops into JSON
- Jev picks strategy, card and square
- Validate and tap; log with video
Strengths
- No training of a game policy
- Every decision logged with video
- About 135 ms per Jev request
Caveats
- Automating a commercial game may breach its terms
- Vision pipeline is the bulk of the work
Getting started
See the engineering write-up at https://bytelabs-oss.github.io/clash-jev/At a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- laptop + Android device (adb)
- Has code
- yes
- License
- MIT
- Stars
- 36
Use cases and integrations
How curated lists describe it
A Clash Royale bot with no trained policy: Jev (TypeSafe System One) makes every decision from the live game state
logicrw/awesome-jev-projectsA Clash Royale bot with no trained policy: Jev (TypeSafe System One) makes every decision from the live game state
wh000wh000/awesome-jev-liveA Clash Royale bot with no trained policy: Jev (TypeSafe System One) makes every decision from the live game state.
hellogumbo/awesome-jev
Frequently asked questions
Does Jev see the screen?
No, vision code converts the screen into a JSON state; Jev reads text only.
Was anything trained?
Only a small troop-recognition network; there is no trained game policy.
Can I watch it play?
Yes, recorded matches are at clash-jev.vercel.app.
Related projects
Browser driving game where Florence-2 captions dropped images and Jev decides whether the car stops, slows or continues.
ProjectprototypeTypeScriptAutonomous PlayStation 2 agent that captures emulator frames, asks Jev for the next action, and injects virtual controller input.
ProjectprototypePythonPlayJev: Qwen3.5-0.8B fine-tuned to play ten browser games from raw pixels, one forward pass per move with a probability per option.
ServiceresearchPython- jev-visual★ 317
Educational MLX project scoring typed questions about one image with Qwen3.5-0.8B on Apple Silicon, with game demos.
ModelresearchPython StartLux's open typed decision models from 0.8B to 27B plus a 35B-A3B MoE, reading text, JSON or images up to 256K tokens.
ModelresearchPythonSource for browser chess and Chess960 where code computes each legal move's facts and Jev picks one per turn as a typed Choice.
ProjectproductionTypeScript