Agent skill

Load Cache Data

by rajbos in rajbos/ai-engineering-fluency

Load and display the last 10 cache entries as raw JSON output.

MITAuto-check passedData & Analytics

Install Load Cache Data

skills CLI
$ npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rajbos/ai-engineering-fluency load-cache-data --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/rajbos/ai-engineering-fluency.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/load-cache-data .claude/skills/load-cache-data && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
load-cache-data
GitHub stars
115
Token cost
~3.2k tokens
SKILL.md length
987 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

Load and display the last 10 cache entries as raw JSON output.

  • Works in 3 steps: VS Code globalStorage:… → Temp directory:… → Current directory: ./cache-export.json
  • You need to understand cached session statistics
  • SKILL.md covers Overview, When to Use This Skill, Cache Structure and Location, plus 8 more sections
  • Calls node

What it does

Load Cache Data is an agent skill from rajbos/ai-engineering-fluency. Load and display the last 10 cache entries as raw JSON output. DO NOT create extra files or pretty-print the data - output raw JSON only. Use when you need to understand cached session statistics, debug cache behavior, or work with actual cached data.

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Data & Analytics, covering Statistics. It works with Visual Studio Code. The repository describes itself as: Extension that shows information about the estimated token usage and more of AI in editors/CLI's. The licence is MIT.

When your agent uses it

  • You need to understand cached session statistics
  • Debug cache behavior
  • Work with actual cached data

Example prompts

  • “/load-cache-data”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. VS Code globalStorage: %APPDATA%\Code\User\globalStorage\rajbos.copilot-token-tracker\cache.json (Windows)
  2. Temp directory: %TEMP%\copilot-token-tracker-cache.json
  3. Current directory: ./cache-export.json

What it can do on your machine

Read from SKILL.md and the folder at commit 6933e2a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Load Cache Data loads about 3.2k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 987 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from rajbos/ai-engineering-fluency at commit 6933e2a, republished under its MIT licence (© rajbos). 987 words, ~3,229 tokens.

Download SKILL.mdSave it as .claude/skills/load-cache-data/SKILL.md (or your agent's skills folder).
name
load-cache-data
description
Load and display the last 10 cache entries as raw JSON output. DO NOT create extra files or pretty-print the data - output raw JSON only. Use when you need to understand cached session statistics, debug cache behavior, or work with actual cached data.

Load Cache Data Skill

Use --json for output; don't pretty-print or write extra files — this data feeds analysis, not display.

This skill helps you access and inspect the AI Engineering Fluency's local session file cache. The cache stores pre-computed statistics for session files to avoid re-processing unchanged files.

Overview

The extension maintains a local cache of session file statistics in VS Code's globalState. This cache contains:

  • Token counts (total and per-model)
  • Interaction counts
  • Model usage breakdowns
  • File modification times (for cache validation)
  • Usage analysis data (tool calls, mode usage, context references)

When to Use This Skill

Use this skill when you need to:

  • Inspect cached session file data
  • Debug cache behavior or validation logic
  • Understand what data is being cached
  • Work with real cached data for testing or development
  • Iterate on features that rely on cached statistics

Cache Structure

The cache is stored in VS Code's global state under the key 'sessionFileCache'. Each cache entry is keyed by the absolute file path and contains:

typescript
interface SessionFileCache {
  tokens: number;                      // Total token count
  interactions: number;                // Number of interactions
  modelUsage: ModelUsage;              // Per-model token breakdown
  mtime: number;                       // File modification timestamp
  usageAnalysis?: SessionUsageAnalysis; // Detailed usage statistics
  subAgentCalls?: number;               // Sub-agent/delegation tool calls (absent when 0)
}

interface ModelUsage {
  [model: string]: {
    inputTokens: number;
    outputTokens: number;
  };
}

interface SessionUsageAnalysis {
  toolCalls: ToolCallUsage;            // Tool usage statistics
  modeUsage: ModeUsage;                // Mode distribution
  contextReferences: ContextReferenceUsage; // Context reference counts
  mcpTools: McpToolUsage;              // MCP tool usage
}

Location

Cache Storage: VS Code globalState → 'sessionFileCache'

  • Accessed via: context.globalState.get<Record<string, SessionFileCache>>('sessionFileCache')
  • Persisted automatically by VS Code
  • Lives in VS Code's internal database (state.vscdb)

Implementation: src/extension.ts (see CacheManager in src/cacheManager.ts below for the actual persistence logic)

How to Access the Cache

From Within the Extension

The cache can be accessed through the extension's context at runtime:

typescript
// Load cache from global state
const cacheData = context.globalState.get<Record<string, SessionFileCache>>('sessionFileCache');
const cacheEntries = Object.entries(cacheData || {});

// Get last 10 entries (sorted by modification time)
const last10 = cacheEntries
  .sort((a, b) => (b[1].mtime || 0) - (a[1].mtime || 0))
  .slice(0, 10);

// Display cache entries
for (const [filePath, cacheEntry] of last10) {
  console.log({
    file: filePath,
    tokens: cacheEntry.tokens,
    interactions: cacheEntry.interactions,
    modelUsage: cacheEntry.modelUsage,
    lastModified: new Date(cacheEntry.mtime).toISOString()
  });
}
Using the Provided Script

This skill includes an executable script that loads and displays actual cache data from disk:

Location: .github/skills/load-cache-data/load-cache-data.js

Usage:

bash
# RECOMMENDED: Always use --json for raw JSON output
node .github/skills/load-cache-data/load-cache-data.js --json

# Show last N entries as JSON (default is 10)
node .github/skills/load-cache-data/load-cache-data.js --last 5 --json

# Show help
node .github/skills/load-cache-data/load-cache-data.js --help

Note: The script supports human-readable output without --json, but for LLM skills, always use --json to get structured data.

What it does:

  • Searches for cache export files in known locations
  • Reads actual cache data if a file exists
  • Displays cache entries sorted by most recent modification
  • Shows detailed token counts, model usage, and usage analysis

Cache File Locations:

The script searches for cache export files in these locations:

  1. VS Code globalStorage: %APPDATA%\Code\User\globalStorage\rajbos.copilot-token-tracker\cache.json (Windows)
    • Also checks other VS Code variants (Insiders, Cursor, VSCodium, etc.)
  2. Temp directory: %TEMP%\copilot-token-tracker-cache.json
  3. Current directory: ./cache-export.json

Creating Cache Export Files:

Since the extension stores cache in VS Code's globalState (internal SQLite database), the cache data must be explicitly exported to one of the above locations for this script to access it. This can be done:

  1. Via Extension: The extension can be enhanced to export cache on demand
  2. Via Tests: Test code can write cache data to disk for inspection
  3. Manually: Copy cache data from extension's globalState and save to one of the expected locations

Exit Codes:

  • 0: Cache file found and displayed successfully
  • 1: No cache file found

Note: If no cache file is found, the script will display the searched locations and instructions for exporting cache data.

Cache Management Methods

All cache persistence and validation logic lives in CacheManager (src/cacheManager.ts), not extension.ts — extension.ts only holds a thin private trySaveCacheToStorage() wrapper that delegates to it.

Loading Cache

Method: CacheManager.loadCacheFromStorage() Location: src/cacheManager.ts

Loads the cache from the shared on-disk snapshot file (not VS Code's global state — the cache moved off globalState to avoid its ~2-3 MB size warning):

typescript
const snapshotPath = this.getSharedSnapshotPath(); // globalStorageUri/cache_<id>.snapshot.json
const content = await fs.promises.readFile(snapshotPath, 'utf-8');
const envelope = JSON.parse(content);
// ...validates schema/cache version, then populates this.sessionFileCache
Saving Cache

Method: CacheManager.trySaveCacheToStorage() Location: src/cacheManager.ts

Writes the shared on-disk snapshot, guarded by a cross-window file lock so concurrent VS Code windows never corrupt each other's write. Returns false (never throws) when the lock is held by another window or the write fails, so callers can tell "skipped/failed" from "persisted":

typescript
async trySaveCacheToStorage(): Promise<boolean> {
  const acquired = await this.acquireCacheLock();
  if (!acquired) { return false; } // another window holds the lock
  try { return await this.writeSharedSnapshot(); }
  finally { await this.releaseCacheLock(); }
}
Cache Validation

Method: CacheManager.isCacheValid() Location: src/cacheManager.ts

Validates cache entries by comparing both modification time and file size:

typescript
isCacheValid(filePath: string, currentMtime: number, currentSize: number): boolean {
  const cached = this.sessionFileCache.get(filePath);
  if (!cached) { return false; }
  return this.policy.isValid(cached, currentMtime, currentSize);
}
Clearing Cache

Method: CacheManager.clearExpiredCache() Location: src/cacheManager.ts

Removes cache entries for files that no longer exist on disk (batched, async, and skips virtual session paths like <db-file>#<session-id> that fs.access() can't validate):

typescript
const filesToCheck = Array.from(this.sessionFileCache.keys());
for (const filePath of filesToCheck) {
  if (CacheManager.isVirtualSessionPath(filePath)) { continue; }
  try { await fs.promises.access(filePath); }
  catch { /* only ENOENT/ENOTDIR tombstone the entry — see the method's own doc comment */ }
}
Show full SKILL.md (383 more words)Show less

Cache Entry Lifecycle

  1. Session File Discovery: Extension finds session files via getCopilotSessionFiles()
  2. Cache Check: For each file, checks if cache is valid via CacheManager.isCacheValid()
  3. Read or Compute: If valid, uses cache; otherwise, reads and parses the file
  4. Cache Update: New statistics are stored in cache via CacheManager.setCachedSessionData()
  5. Persistence: Cache is saved to the shared on-disk snapshot via CacheManager.trySaveCacheToStorage() (periodically, and unconditionally at the end of a leader refresh)
  6. Cleanup: Expired entries are removed via CacheManager.clearExpiredCache()

Example Use Cases

Example 1: Inspecting Recent Sessions
typescript
// Get cache data
const cache = context.globalState.get('sessionFileCache');
const entries = Object.entries(cache || {});

// Sort by most recent
entries.sort((a, b) => (b[1].mtime || 0) - (a[1].mtime || 0));

// Show top 10
console.log('Most recent sessions:');
entries.slice(0, 10).forEach(([path, data], i) => {
  console.log(`${i + 1}. ${path.split('/').pop()}`);
  console.log(`   Tokens: ${data.tokens}, Interactions: ${data.interactions}`);
  console.log(`   Modified: ${new Date(data.mtime).toLocaleString()}`);
});
Example 2: Analyzing Model Usage in Cache
typescript
const cache = context.globalState.get('sessionFileCache');
const modelTotals = {};

for (const [path, data] of Object.entries(cache || {})) {
  for (const [model, usage] of Object.entries(data.modelUsage)) {
    if (!modelTotals[model]) {
      modelTotals[model] = { input: 0, output: 0 };
    }
    modelTotals[model].input += usage.inputTokens;
    modelTotals[model].output += usage.outputTokens;
  }
}

console.log('Cached model usage:');
for (const [model, totals] of Object.entries(modelTotals)) {
  console.log(`  ${model}: ${totals.input + totals.output} tokens`);
}
Example 3: Cache Statistics
typescript
const cache = context.globalState.get('sessionFileCache');
const entries = Object.entries(cache || {});

const stats = {
  totalEntries: entries.length,
  totalTokens: 0,
  totalInteractions: 0,
  oldestEntry: null,
  newestEntry: null
};

entries.forEach(([path, data]) => {
  stats.totalTokens += data.tokens;
  stats.totalInteractions += data.interactions;
  
  if (!stats.oldestEntry || data.mtime < stats.oldestEntry.mtime) {
    stats.oldestEntry = { path, mtime: data.mtime };
  }
  if (!stats.newestEntry || data.mtime > stats.newestEntry.mtime) {
    stats.newestEntry = { path, mtime: data.mtime };
  }
});

console.log('Cache Statistics:', stats);

Integration with Extension

The cache is tightly integrated with the extension's token tracking:

  1. Session File Processing: getSessionFileDataCached()

    • Checks cache validity
    • Reads and parses file if needed
    • Updates cache with new data
  2. Statistics Calculation: calculateDetailedStats()

    • Uses cached data when available
    • Aggregates statistics across all cached sessions
    • Includes usage analysis from cache
  3. Performance Optimization:

    • FIFO cache eviction after 1000 entries
    • Modification time comparison for validation
    • Automatic cleanup of expired entries

Troubleshooting

Cache Not Loading

Symptoms: Extension shows no cached data or logs "No cached session files found" Solutions:

  1. Check that session files exist via getCopilotSessionFiles()
  2. Verify global state is accessible
  3. Look for errors in Output channel (AI Engineering Fluency)
Cache Out of Sync

Symptoms: Token counts don't match session file contents Solutions:

  1. Clear cache via Command Palette: "Clear Cache"
  2. Check file modification times
  3. Manually refresh via "Refresh Token Usage" command
Cache Too Large

Symptoms: Extension slow to start or save Solutions:

  1. Cache automatically limits to 1000 entries
  2. Clear expired entries via clearExpiredCache()
  3. Manually clear cache if needed
  1. Cache implementation: src/cacheManager.ts (CacheManager)

    • Cache interface definition
    • Cache management methods
    • Cache usage in statistics
  2. Session file discovery: src/extension.ts (via SessionDiscovery)

    • Session file discovery
    • File scanning logic
  3. Session parsing: src/sessionParser.ts

    • Session file parsing logic
    • Token estimation
    • Usage analysis extraction
  4. Skill script: .github/skills/load-cache-data/load-cache-data.js

    • Demonstrates cache structure
    • Provides example data
    • Shows access patterns

Notes

  • Cache is stored in VS Code's internal SQLite database (state.vscdb)
  • Cache entries are validated by file modification time
  • Maximum of 1000 entries maintained (FIFO eviction)
  • Cache persists between VS Code sessions
  • Clearing cache forces re-processing of all session files
  • Cache improves performance significantly for large numbers of session files

© rajbos, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/load-cache-data of rajbos/ai-engineering-fluency.

Open the folder on GitHubat commit 6933e2a

Compare with similar skills

Load Cache Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Load Cache Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Load Cache Data this skillrajbos/ai-engineering-fluency115—~3.2kAutomated safety check: PassMIT
Statistical Analysisspacering-net/codeg3.8k3 repos~5kAutomated safety check: PassMIT
StatsmodelszLanqing/codex-claude-academic-skills4.6k16 repos~4.9kAutomated safety check: PassBSD-3-Clause
Ketch1broseidon/ketch6961 repos~3.9kAutomated safety check: PassMIT
AI Daily DigestvigorX777/ai-daily-digest1.6k—~1.3kAutomated safety check: PassNone
Statistical Powerspacering-net/codeg3.8k1 repos~3.6kAutomated safety check: NotesMIT

Similar skills

  • Statistical Analysis

    spacering-net/codeg

    Guided statistical analysis for research data - test selection, assumption checking, effect sizes, power analysis, Bayesian alternatives, and APA-formatted reporting.

    3.8k GitHub starsUsed in 3 repos~5k tokens
    Data & AnalyticsAuto-check passed
  • Statsmodels

    zLanqing/codex-claude-academic-skills

    Statistical models library for Python. An agent skill from zLanqing/codex-claude-academic-skills.

    4.6k GitHub starsUsed in 16 repos~4.9k tokens
    Data & AnalyticsAuto-check passed
  • Ketch

    1broseidon/ketch

    Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…

    696 GitHub starsUsed in 1 repo~3.9k tokens
    Data & AnalyticsAuto-check passed
  • AI Daily Digest

    vigorX777/ai-daily-digest

    Fetches RSS feeds from 90 top Hacker News blogs (curated by Karpathy), uses AI to score and filter articles, and generates a daily digest in Markdown with Chinese-translated titles, category…

    1.6k GitHub stars~1.3k tokensUpdated 7 mo ago
    Data & AnalyticsAuto-check passed
  • Statistical Power

    spacering-net/codeg

    Sample-size and statistical power calculations for planning studies.

    3.8k GitHub starsUsed in 1 repo~3.6k tokens
    Data & AnalyticsAuto-check: notes
  • Agent Session Monitor

    higress-group/higress

    Real-time agent conversation monitoring - monitors Higress access logs, aggregates conversations by session, tracks token usage.

    9.5k GitHub stars~3.3k tokensUpdated 2 days ago
    Data & AnalyticsAuto-check passed

More from rajbos/ai-engineering-fluency

All 22 skills in this repo
  • Check Urls

    rajbos/ai-engineering-fluency

    Find all hardcoded URLs in TypeScript source files and verify they resolve (return HTTP 2xx/3xx).

    115 GitHub stars~662 tokensUpdated yesterday
    Auto-check passed
  • Create Issue

    rajbos/ai-engineering-fluency

    Create a well-scoped GitHub issue in this repo. An agent skill from rajbos/ai-engineering-fluency.

    115 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Deduplicate Code

    rajbos/ai-engineering-fluency

    Detect copy-pasted code blocks across the shared source (vscode-extension/src, the repo-root src/, cli/src) with the dependency-free check-code-duplication.js detector, then pick one duplicate group…

    115 GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Improve Tool Families

    rajbos/ai-engineering-fluency

    Analyze coverage of the vscode-extension's tool-family definitions (DEFAULTTOOLFAMILIES in vscode-extension/src/toolFamilies.ts) against the canonical tool-name list in src/toolNames.json and/or a…

    115 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • PR Risk Review

    rajbos/ai-engineering-fluency

    Assess the risk of a changeset (a PR, a branch, or the working tree) and classify it as low, medium, or high with a written rationale.

    115 GitHub stars~2.6k tokensUpdated yesterday
    Auto-check passed
  • Session Log Data

    rajbos/ai-engineering-fluency

    Describes the data files available in the coding agent environment after copilot-setup-steps runs.

    115 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed

Questions about Load Cache Data

What does Load Cache Data do?

Load and display the last 10 cache entries as raw JSON output. Load Cache Data is an agent skill from rajbos/ai-engineering-fluency. Load and display the last 10 cache entries as raw JSON output.

When should I use Load Cache Data?

Load Cache Data fits situations like: you need to understand cached session statistics; debug cache behavior; work with actual cached data.

How do I install Load Cache Data in Claude Code?

Run `npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a claude-code`. Or copy the skill folder (.claude/skills/load-cache-data in rajbos/ai-engineering-fluency) into .claude/skills/load-cache-data in your project. Claude Code loads it when a task matches its description.

How do I install Load Cache Data in Codex?

Run `npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a codex`. Or copy the skill folder (.claude/skills/load-cache-data in rajbos/ai-engineering-fluency) into .agents/skills/load-cache-data in your project. Codex loads it when a task matches its description.

Can I use Load Cache Data in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rajbos/ai-engineering-fluency --skill load-cache-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/load-cache-data, .gemini/skills/load-cache-data, .github/skills/load-cache-data and .opencode/skills/load-cache-data in your project.

What does Load Cache Data need to run?

Going by SKILL.md and its folder, Load Cache Data needs the command-line tools its instructions call (node).

Does Load Cache Data access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Load Cache Data safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Load Cache Data use?

Load Cache Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Load Cache Data use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Load Cache Data?

Skills that share tags, products or a category with Load Cache Data: Statistical Analysis (spacering-net/codeg, 3.8k stars), Statsmodels (zLanqing/codex-claude-academic-skills, 4.6k stars), Ketch (1broseidon/ketch, 696 stars) and AI Daily Digest (vigorX777/ai-daily-digest, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Load Cache Data?

rajbos (a GitHub user) maintains it in rajbos/ai-engineering-fluency, which has 115 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 6, 2026.

Source: rajbos/ai-engineering-fluency on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.