Compatibility
Minecraft: Java Edition
1.21–1.21.1
1.20–1.20.1
1.16.5
Platforms
Supported environments
Client-side
Links
Tags
Creators
Details
Licensed GPL-3.0-only
Published 4 years ago
Pendulum
Client-side JavaScript executor for Minecraft. Automate player actions — movement, construction, combat, inventory,
world queries, and Baritone supported. Designed for both human players and AI agents.
This mod is partly inspired by Playwright.js, which allows agents to control web browsers via JavaScript. Pendulum
brings that same power to Minecraft, enabling complex automation and AI integration through a simple JS API.
Version Support
| Minecraft | Fabric | Forge | NeoForge | Status |
|---|---|---|---|---|
| 1.20.1 | ✅ | ✅ | Fully Supported | |
| 1.21.1 | ✅ | ❌ | ✅ | Fully Supported |
| 26.1.2 | 🔨 | ❌ | 🔨 | In development |
Features
For detailed documentation, see the Documentation
🧑 For Players
/pendulum execute— run JavaScript inline in chat/pendulum file— run.jsscripts from.minecraft/pendulum/mc.*— 80+ API functions:mc.player.forward(),mc.world.findBlocks(),mc.inv.hasItem(),mc.gui.click(), and more. Log viapendulum.log(),pendulum.warn(),pendulum.error().br.*— 45 Baritone functions: pathfinding, mining, farming, building schematics
🤖 For AI Agents
- MCP JSON-RPC 2.0 over TCP — native AI agent integration
script/eval— execute arbitrary JS and return resultsscript/status/script/abort— manage script stategui/enumerateWidgets— full recursive widget treegui/guiElements— read all visible GUI controlsgui/screenshot— capture the game viewsimulate/click/gui/clickButton— click GUI elementssimulate/typeText/simulate/pressKey— keyboard input- Compatible with VS Code Copilot, Claude Desktop, and any MCP client
Quick Start
// Walk forward 1 second
/pendulum execute mc.player.forward(20)
// Mine all pumpkins nearby
/pendulum execute for(let p of mc.world.findBlocks('minecraft:pumpkin',8)){ mc.player.breakBlockAt(p.x,p.y,p.z) }
// Run a script file
/pendulum file farm.js
// AI Agent workflow: screenshot + click
gui/screenshot → gui/clickButton("Done") → simulate/typeText("Hello", true)
MCP Server
Start the MCP server for AI agent access:
/pendulum mcp start # default port 25566
/pendulum mcp stop # stop the server
/pendulum mcp status # check if running
Configure your MCP client to connect to localhost:25566 (default).


