A powerful CLI tool for accessing the RuneScape 3 Wiki, designed to assist Ironman players and power LLM agents with structured game data.
Built with Bun, Turborepo, and TypeScript.
- Search: Find pages with rich snippets.
- Inspect Pages: Fetch structured content (tables, stats, drop rates) from any wiki page.
- Section Filtering: extract only specific sections (e.g., "Drop sources") to save context.
- Category Exploration: Discover related pages (e.g., "Category:Novice quests").
- Player Profile: Fetch stats and quest data from RuneMetrics.
- JSON Output: All commands support
--jsonfor easy integration with LLMs. - Caching: File-system cache with TTL and optional custom directory.
- Token Reduction: Headings-only output and JSON field selection for smaller payloads.
Install directly from NPM to use the CLI globally:
npm install -g loadstone-rs3Note: Requires Node.js installed on your system.
If you want to contribute or build locally:
- Prerequisites: Bun (v1.0+)
- Setup:
git clone https://github.com/yourusername/loadstone.git cd loadstone bun install bun run build - Link:
cd apps/cli npm link
Once installed, you can use the loadstone command anywhere:
# Search for a page
loadstone search "Abyssal whip"
# View page content (text mode)
loadstone page "Abyssal whip"
# Get structured JSON for an LLM
loadstone page "Abyssal whip" --json
# Get only section headings (for quick structure)
loadstone page "Abyssal whip" --json --headings
# Get a subset of sections to reduce tokens
loadstone page "Abyssal whip" --json --fields "Combat stats,Drop sources"
# Get only specific data (e.g., Drop Sources)
loadstone page "Abyssal whip" --section "Drop sources" --json
# List items in a category
loadstone category "Novice quests"
# Check player stats
loadstone profile "YourUsername"
# Get only skills (for specific level queries)
loadstone profile "YourUsername" --json --skills-only
# Get only completed quests
loadstone profile "YourUsername" --json --completed-quests-only
# Get only started quests (what to focus on)
loadstone profile "YourUsername" --json --started-quests-only
# Get only not-started quests
loadstone profile "YourUsername" --json --not-started-quests-only
# Get all quests with minimal data
loadstone profile "YourUsername" --json --quests-only
# Get full profile with raw API data
loadstone profile "YourUsername" --json --include-raw
# Cache controls
loadstone page "Abyssal whip" --cache-ttl 12
loadstone page "Abyssal whip" --cache-dir "~/.loadstone/cache"
loadstone page "Abyssal whip" --no-cacheapps/cli: The main command-line application.packages/wiki-client: Shared library for RS3 Wiki and RuneMetrics API interaction.packages/tsconfig: Shared TypeScript configuration.packages/eslint-config: Shared ESLint configuration.
This project uses Turborepo to manage the workspace.
# Run dev mode (watch)
bun run dev
# Lint all packages
bun run lint