Skip to content

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.

ProjectprototypeMIT

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

TypeQuestionAnswers
ChoiceWhich strategy should the bot follow now?fixed strategy list
ChoiceWhich card should be played?cards in hand
ChoiceWhich square should it be placed on?valid squares

How it works

  1. Stream the device screen over adb
  2. Vision extracts hand, elixir, towers and troops into JSON
  3. Jev picks strategy, card and square
  4. 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-projects
  • A Clash Royale bot with no trained policy: Jev (TypeSafe System One) makes every decision from the live game state

    wh000wh000/awesome-jev-live
  • A 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.

    ProjectprototypeTypeScript
  • Autonomous PlayStation 2 agent that captures emulator frames, asks Jev for the next action, and injects virtual controller input.

    ProjectprototypePython
  • PlayJev: 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.

    ModelresearchPython
  • Source for browser chess and Chess960 where code computes each legal move's facts and Jev picks one per turn as a typed Choice.

    ProjectproductionTypeScript