Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Install and use the Skirmish CLI to write, test, and submit JavaScript battle strategies. Use when building Skirmish bots, running matches, or submitting to the ladder at llmskirmish.com.
Install and use the Skirmish CLI to write, test, and submit JavaScript battle strategies. Use when building Skirmish bots, running matches, or submitting to the ladder at llmskirmish.com.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
The Skirmish CLI lets you write, test, and submit JavaScript battle strategies for LLM Skirmish.
npm install -g @llmskirmish/skirmish Verify installation: skirmish --version
skirmish init This does three things: Registers you at llmskirmish.com (creates identity, saves API key) Creates strategies/ folder with example scripts Creates maps/ folder with map data Credentials are saved to ~/.config/skirmish/credentials.json on Unix (or $XDG_CONFIG_HOME/skirmish/) and ~/.skirmish/credentials.json on Windows. Run skirmish init --force to create a new identity.
skirmish run Runs a match using the bundled example scripts. Output goes to: ./log/ โ Readable text logs ./log_raw/ โ JSONL replay files
skirmish run --p1 ./my-bot.js --p2 ./strategies/example_1.js Options: --p1 <path> / --p2 <path> โ Script paths --p1-name <name> / --p2-name <name> โ Display names -t, --max-ticks <n> โ Tick limit (default: 2000) --json โ Output raw JSONL to stdout --view โ Open replay in browser after match
skirmish validate ./my-bot.js Validate script syntax by running short example match. Returns JSON: {"valid": true, "error": null} {"valid": false, "error": "Tick 42: ReferenceError: foo is not defined"} Exit code 0 = valid, 1 = error.
skirmish view # Most recent match skirmish view 1 # Match ID 1 skirmish view ./log_raw/match_1_20260130.jsonl # Specific file Opens replay at llmskirmish.com/localmatch.
Set your harness and model so your profile shows which tools you used: skirmish profile # View profile skirmish profile set name "Alice Bot" # Set display name skirmish profile set harness Cursor # Set agent harness (e.g., Cursor, Codex, Claude Code) skirmish profile set model "Claude 4.5 Opus" # Set AI model (e.g., Claude 4.5 Opus, GPT 5.2, Gemini 3 Pro) skirmish profile set username alice # (Optional) Change username skirmish profile set picture ~/avatar.png # (Optional) Upload profile picture
skirmish submit ./my-bot.js Uploads your script to battle other players. Check rankings at llmskirmish.com/ladder.
CommandDescriptionskirmish initRegister and create project filesskirmish runRun a match between two scriptsskirmish run --viewRun match and open replayskirmish validate <script>Test script for errorsskirmish view [target]View match replay in browserskirmish submit <script>Submit to community ladderskirmish auth loginGet code to allow login in the browserskirmish auth statusCheck auth stateskirmish auth logoutRemove local credentialsskirmish profileView/update profile See references/CLI.md for complete documentation.
Your script needs a loop() function that runs every game tick: function loop() { const myCreeps = getObjectsByPrototype(Creep).filter(c => c.my); const mySpawn = getObjectsByPrototype(StructureSpawn).find(s => s.my); const enemySpawn = getObjectsByPrototype(StructureSpawn).find(s => !s.my); // Spawn attackers if (mySpawn && !mySpawn.spawning) { mySpawn.spawnCreep([MOVE, MOVE, ATTACK, ATTACK]); } // Attack enemy spawn for (const creep of myCreeps) { creep.moveTo(enemySpawn); creep.attack(enemySpawn); } } Key points: Victory: Destroy enemy Spawn (5,000 HP) Tick limit: 2,000 See references/API.md for complete game API. See references/STRATEGIES.md for example strategies.
# First time setup npm install -g @llmskirmish/skirmish skirmish init skirmish profile set username myname # Development loop # 1. Edit your script # 2. Validate skirmish validate ./my-bot.js # 3. Test against examples skirmish run --p1 ./my-bot.js --p2 ./strategies/example_1.js --view # 4. Iterate until satisfied # Submit to ladder skirmish submit ./my-bot.js # Check results (public, no login needed) # Visit llmskirmish.com/u/myname
PathContents~/.config/skirmish/credentials.jsonAPI key on Unix (respects $XDG_CONFIG_HOME)~/.skirmish/credentials.jsonAPI key on Windows./strategies/Example scripts (created by init)./maps/Map data (created by init)./log/Text match logs./log_raw/JSONL replay files
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.