Skip to content

damianpoole/Loadstone

Repository files navigation

Loadstone

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.

Features

  • 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 --json for 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.

Installation

For Users (Recommended)

Install directly from NPM to use the CLI globally:

npm install -g loadstone-rs3

Note: Requires Node.js installed on your system.

For Developers (Source Code)

If you want to contribute or build locally:

  1. Prerequisites: Bun (v1.0+)
  2. Setup:
    git clone https://github.com/yourusername/loadstone.git
    cd loadstone
    bun install
    bun run build
  3. Link:
    cd apps/cli
    npm link

Usage

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-cache

Project Structure

  • apps/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.

Development

This project uses Turborepo to manage the workspace.

# Run dev mode (watch)
bun run dev

# Lint all packages
bun run lint

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors