← All Projects
AutomationOpen source

Pokémon GO Automation

Gift sending, friend requests, GO Battle League, trades, transfers, and berry feeding in one documented toolkit for Android and iOS devices.

PythonAndroid + iOSDevice automationADBComputer Vision
Physical device running automated Pokémon GO Battle League combat sequence
Live physical device running automated GO Battle League matches, move timing, and charged attacks via ADB.

What it is

This project brings the repetitive parts of my daily Pokémon GO routine into a unified Python automation toolkit. A concise set of named commands coordinates gift sending, friend code queuing, GO Battle League matches, peer-to-peer trading, bulk transfers, and berry feeding across tethered devices.

The public architecture separates reusable device-interaction logic from private credentials. You supply your own device identifiers, screen resolutions, and friend lists. The codebase provides the complete execution pipeline so another developer or AI coding agent can reproduce the setup on independent hardware.

How it works

One entry point per job

Descriptive Python entry points route directly into platform-specific Android (ADB) and iOS workers rather than burying execution in an unmaintainable monolith.

A shared fleet layer

Device discovery, battery thresholds, readiness checks, and optional remote-machine dispatch operate independently from game-specific loops.

Private configuration by design

Device serials, machine IPs, account tokens, friend lists, and execution logs stay strictly within private configuration directories, using generic templates in version control.

Inspectable execution plans

Running any command with --plan previews device routing, screen coordinates, and target counts without touching physical game state.

One file for each workflow

Run these commands from the repository in your Python environment. The examples preview workflow routing; fleet.py status checks readiness. Each entry file links to the public source.

add_friends.py

Add friends

Run the friend-request workflow with trainer codes supplied in your private configuration. Keep real codes and queue files out of version control.

Preview the plan

python add_friends.py --plan
trade_pokemon.py

Trade Pokémon

Coordinate a selected pair of devices for the trading workflow. Select two devices on the same host. Pair names come from your private inventory; these names are examples.

Preview the plan

python trade_pokemon.py --pair android-one android-two --count 1 --plan
fleet.py

Inspect the fleet

Read the configured inventory and report readiness before launching a workflow. Use the fleet documentation when adding remote machines.

Readiness check

python fleet.py status

Production architecture & pipeline specs

Sub-Pixel Optical Verification

Rather than blindly sending tap events on fixed timers, the pipeline samples screen frames using fast ADB framebuffer grabs, applying OpenCV template matching to confirm animations completed.

Fleet Health & Thermal Throttling

Devices run prolonged background batches. The fleet monitor polls battery levels and CPU temperatures, inserting cool-down intervals when thermal throttling threatens frame rates.

Recreate the setup on your hardware

  1. Install the package and device tools

    Set up Python dependencies and verify ADB connectivity for Android devices or the documented WebDriverAgent connection for iOS hardware.

  2. Create your private inventory

    Copy pokemon-fleet.example.yaml into ~/.config/pokemon-go-automation/ and map your connected device serials and screen calibrations.

  3. Check readiness and review a plan

    Run python fleet.py status to verify battery and connection health, then execute your target command with --plan.

  4. Run and inspect physical results

    Execute live workflows with small batches while monitoring the physical screen to verify gesture alignment and network latency tolerances.

Documentation for people and coding agents

Start a new AI coding session with AGENTS.md and the AI handoff guide. Then supply your own environment details privately. The guides connect each command to its configuration, implementation, and verification steps.

Project notes

These workflows interact directly with the Pokémon GO interface on physical hardware. Screen layouts, game updates, and network lag can alter timing. Always review proposed trades and transfers with --plan prior to live runs.