askill
skirmish

skirmishSafety 90Repository

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.

2 stars
1.2k downloads
Updated 2/7/2026

Package Files

Loading files...
SKILL.md

Skirmish CLI

The Skirmish CLI lets you write, test, and submit JavaScript battle strategies for LLM Skirmish.

Installation

npm install -g @llmskirmish/skirmish

Verify installation:

skirmish --version

Getting Started

1. Initialize Project

skirmish init

This does three things:

  1. Registers you at llmskirmish.com (creates identity, saves API key)
  2. Creates strategies/ folder with example scripts
  3. 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.

2. Run Your First Match

skirmish run

Runs a match using the bundled example scripts. Output goes to:

  • ./log/ — Readable text logs
  • ./log_raw/ — JSONL replay files

3. Run Custom Scripts

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

4. Validate Scripts

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.

5. View Match Replays

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.

6. Manage Profile

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

7. Submit to Ladder

skirmish submit ./my-bot.js

Uploads your script to battle other players. Check rankings at llmskirmish.com/ladder.

CLI Reference

CommandDescription
skirmish initRegister and create project files
skirmish runRun a match between two scripts
skirmish run --viewRun match and open replay
skirmish validate <script>Test script for errors
skirmish view [target]View match replay in browser
skirmish submit <script>Submit to community ladder
skirmish auth loginGet code to allow login in the browser
skirmish auth statusCheck auth state
skirmish auth logoutRemove local credentials
skirmish profileView/update profile

See references/CLI.md for complete documentation.

Writing a Strategy

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.

Typical Workflow

# 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

File Locations

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

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/12/2026

Excellent skill documentation for the Skirmish CLI. It provides a comprehensive guide from installation to submission, including code examples and workflow patterns.

90
100
85
98
100

Metadata

Licenseunknown
Version-
Updated2/7/2026
PublisherDemerzels-lab

Tags

apigithub-actionsllmsecuritytesting