Skip to content

Latest commit

 

History

276 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conveyer

version license GitHub

An LLM plays Factorio. On a real save.

It reads the game as data, not pixels. Each turn it picks one move from a short list. The move checks its own result, and the game answers. Live.

Built on FLE, the Factorio Learning Environment.

Where it is

Road to the rocket: 100% #################### 44 of 44 techs the silo needs. Rockets launched: 2 (v1.0.0 assisted, v2.0.0 with no console-fed parts).

It plays a copy of a real 2,300 entity base and builds the rest itself: a planner lays out assembler tiles, a loop feeds them, and replay scripts rebuild everything after a crash. Two rockets have launched. The first was assisted. The second, at 20:45 on 2 October 2026, had no console-fed parts. A server crash later that night rolled the world back, so the video relaunch is labelled assisted.

Techs researched and entities built over time

Run it

You need a licensed Factorio (2.0.73 or newer), Docker, and a token from factorio.com/profile. On a Mac, use colima and keep the repo under $HOME.

# .env: FACTORIO_USERNAME=... FACTORIO_TOKEN=...
pip install -r requirements.txt
set -a; source .env; set +a
fle cluster start -n 1 -s open_world
python3 runner.py --env-id open_play
./step.sh '{"skill": "inspect", "params": {}}'

To play your own save, run scripts/world.sh. It boots the server on a copy and never touches the original. scripts/world.sh back returns to the test map. Then python3 runner.py --env-id open_play --keep-world.

Watch it

  • Live window: menubar/build.sh, then ConveyerMonitor.app --open-live. Map, machine status dots, the engineer, a terrain minimap, the key stock bar, an activity feed, and the rocket silo drawn with the game's own sprites (scripts/silo_sprites.py, from your Steam install, never committed). Ctrl+Option+P pins it, Ctrl+Option+H hides the research panel.
  • Video: scripts/record.sh captures the screen, scripts/make_video.py cuts it.
  • Terminal: python3 scripts/tui.py.
  • Never join with a real Factorio client. It forces a map save, the save fails, and the server quits. See docs/LEARNINGS.md.

Rules and tests

Every session follows docs/RULES.md. CI runs every test on each pull request.

How it works

runner.py stays alive and reads a skill from runner_cmd.json. skills.py turns it into code FLE runs against the server, and the result comes back as the next observation. A planner builds and feeds assembler tiles on its own. Details in docs/ARCHITECTURE.md, lessons in docs/LEARNINGS.md, training a model of our own in docs/TRAINING.md.

License

MIT 2026, Joshua Trommel. Factorio is property of Wube Software. This project is unaffiliated and does not distribute the game.

About

Claude plays Factorio via FLE (Lua/RCON bridge, Docker)

Topics

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages