GGG-APPROVED ACCOUNT CONNECT

Your Path of Exile 2 characters, in Claude.

Connect once through GGG's official OAuth -- read-only -- and your AI sees every character's equipped gear, skill gems with their supports, and passive tree. Live poe.ninja prices come along, in divines, by league. Works with Claude and ChatGPT.

CONNECTED CHARACTER -- GEAR CHECK
YOU |
GGG-approved connected app Official PoE2 character API -- read-only poe.ninja PoE2 live economy Alpha release -- PoB2 analysis on the roadmap

Answers in your language

  • English
  • Português
  • Español
  • Deutsch
  • Français
  • Polski
  • Čeština
  • Türkçe
  • Русский
  • 한국어
  • 中文
ACCOUNT CONNECT

Connect once. Every character comes along.

Savecraft is a GGG-approved connecting application. The connection is read-only and scoped to your characters and profile -- nothing else.

What your AI sees Every character on your account: equipped gear with rune sockets, the skill gems you've socketed with their supports, and your full passive tree allocation including ascendancy picks. Ask about any character by name.
How fresh the data is Character data reflects your last refresh, not real-time -- refresh in Savecraft and ask again after a gear swap. This is an early (alpha) release: the API doesn't expose unequipped inventory, and Path of Building-style DPS analysis isn't here yet (PoB2 enrichment is on the roadmap).
REFERENCE MODULES

Live economy, honestly sourced.

Reference modules work the moment you add the game -- no account connection required.

Build Planner

NEEDS SAVE

Analyze, modify, or explore a Path of Exile 2 build via Path of Building 2. First call returns a compact summary (DPS, life, resists, attributes), character info (class, ascendancy, specialisations), and a section_index listing available detail sections. The summary includes per-element damage breakdown (PhysicalHitAverage, FireHitAverage, ColdHitAverage, LightningHitAverage, ChaosHitAverage) showing the actual damage type split after all conversion and 'gain as extra' mechanics — check these BEFORE recommending element-specific gem or support changes. A skill tagged 'Fire' may deal significant chaos damage via gear conversion. The items section includes mod text for rare/magic items — use these to understand gear-based conversion, added-as-extra, and other build-defining mechanics. Unique item mods are not shown (use unique_search to look them up by name). Request sections='config' to see active configuration overrides (combat conditions, enemy settings, Wither stacks, etc.). To determine Low Life status, check config for conditionLowLife — do NOT rely on LifeUnreservedPercent, which reflects static reservations only, not combat-conditional effects. To drill deeper, call again with the buildId and sections parameter (e.g. sections='offense,defense'). Stat sections return curated key stats plus _extra_keys listing other available stats — use stat_keys to request specific extras. For modifications, pass buildId + operations. The response includes a changes object with {before, after, delta} for every summary stat that changed — present the delta to the player, not the full stat dump. For tree exploration, pass buildId + nearby_metrics to find the highest-impact nearby nodes ranked by real calc deltas. For tree pruning, pass buildId + audit_allocated to find weak branches in the CURRENT allocated tree — ranked by what the player would lose by removing them, with a dead_weight bucket of zero-contribution nodes. Pairs naturally with nearby_metrics: audit identifies underperforming branches, nearby finds replacement directions, you propose the swap. To drill into WHY a stat has its value (which item, tree node, skill, or specialisation contributes), pass mod_sources with the stat names. Stat names resolve case-insensitively, and each requested stat returns exactly one kind-discriminated object under data.statSources[statName]: kind=sources contains top-N modifier rows with source_type, source_name, mod_name, mod_type, value, and mod_row_key, plus truncated: {omitted_rows} when the row limit drops contributors; kind=unsupported_derived contains reason and decomposable_inputs; kind=unknown_stat contains reason and canonical when a case-insensitive match exists. Empty rows in kind=sources means genuinely no contributors. Decomposable stats (return kind=sources with real per-mod rows when contributors exist): Life, EnergyShield, Mana, Spirit, Armour, Evasion, Strength, Dexterity, Intelligence, resistances, BlockChance, SpellSuppressionChance, LifeRegen, ManaRegen, CritChance, ailment-chance/effect stats, hit-damage component stats — anything stored as a mod against the player’s actor. Derived stats such as CombinedDPS, TotalDPS, FullDPS, AverageHit, Speed, EHP, and MaximumHitTaken variants return kind=breakdown or kind=attribution; kind=unsupported_derived applies only when the source-unit universe is empty. When a player asks why two builds diverge on a damage stat, request the listed decomposable_inputs (crit components, hit-damage adders, conversion mods, gear-source life-as-extra-mana, etc.), not the aggregate. Aggregate stats serve as quick "is this build behaving fundamentally differently?" tells, not as source-decomposable answers. Use nearby_categories on a /resolve or /modify call to focus the inline power_report on a specific node type (e.g. nearby_categories=["Keystone"] when the player asks "any keystone I should grab?") — pair with audit_categories on a follow-up audit_allocated call to get symmetric remove/add suggestions confined to the same category axis. When narrating /compare gear diffs, filter to slots where modsSame is false — modsSame:true means no mechanical divergence even when nameSame:false (rare reroll, RELIC/UNIQUE foil flag), so those slots add noise without insight. Each compared socket group carries mainGemLinkCount (link count of the main gem's socket), hostItemMaxLink (largest link on the host item), and hostItemName — read these directly to answer "is this skill 6-linked?" instead of re-correlating with sections.gear.items by slot. diffs.tree.allocatedOnlyIn is an array indexed parallel to builds[]; failed builds get [] at their index — index by build position, not buildId. Config keys prefixed multiplier (e.g. multiplierRage, multiplierWitheredStackCount, multiplierFrenzyCharges) are user-set knobs the calc reads as inputs; the resulting runtime stats live in offense/defense and may be cap-clamped against gear-derived maxima. Read the runtime stat in offense/defense for the post-calc effect — the config value is what was requested, not what's being applied. Every response includes a buildId for follow-up calls. PoE2 has no bandit quest and no pantheon system — the operations list has no set_bandit/set_pantheon ops, and there is no bandit/pantheon field in character info. buy_similar trade-search enrichment (available for PoE1 builds) is not supported for PoE2 — pob-server's trade-mod lookup is poe1-only.

Economy Prices

INSTANT

Look up current Path of Exile 2 item and currency prices from poe.ninja. USE PROACTIVELY: query this module when discussing item value, trade decisions, upgrade budgets, or farming strategies. Prices are always denominated in poe.ninja's primary currency (divine orbs) and every result is labeled with that denomination and the league it was pulled from.

Passive Tree Search

INSTANT

Search or resolve Path of Exile 2 passive tree nodes. USE PROACTIVELY: query this module to verify keystone effects, find notable locations, or check ascendancy nodes before advising on tree pathing — and to resolve a character's allocated passive node hashes (the `hashes` array in a connected character's passives section) to readable names, types, and stats. Supports filtering search by type (keystone, notable, small) and ascendancy.

Ground Truth

INSTANT

Verified per-game facts with sources, served from the curated fact store; supersedes model training data. Query by text, topic, or fact_id; an empty query lists topics.

THE DIFFERENCE

What changes

WITHOUT SAVECRAFT
YOU I'm gearing my Chronomancer for cruel. What's my weakest slot?
AI Focus on getting your chest to a 4-link first, cap your resistances, and look for life on every slot. A Tabula Rasa is a cheap way to bridge the gap if you can trade for one.

Links don't exist in PoE2. That's PoE1 muscle memory answering about a game it can't see.

GEAR ADVICE -- FROM YOUR ACTUAL CHARACTER
YOU |

Your actual slots, your actual sockets, PoE2 mechanics only.

HOW YOU USE IT

Honest answers about a live game

Fresh-by-refresh character data, league-labeled prices, and no guessing.

* GEAR CHECK
YOU Did the new body armour make it onto my character?
AI Your data reflects the last refresh, not real-time -- hit refresh in Savecraft and ask again. As of your last sync I see the Aegis of the Unshaken chain mail equipped, so if you swapped after that, the new piece hasn't landed in my view yet.
+ LEAGUE ECONOMIST
YOU What's that unique going for right now?
AI I'll pull it from poe.ninja's PoE2 data -- every price comes back denominated in divines and labeled with the league it came from. And if poe.ninja can't confirm a price, you get 'unavailable', never a guess dressed up as a number.
= TREE PLANNER
YOU What did I actually take on the way to Chronomancer?
AI Your full passive allocation imports with the character -- every node you've taken plus your ascendancy picks. When you want to plan a rework, we start from what you actually have instead of a half-remembered tree.
FROM OAUTH TO ANSWERS

Three steps, no files.

Path of Exile 2 is a server-side game -- there's nothing to install and no saves to watch. The connection does all the work.

Connect your GGG account

One click through GGG's official OAuth. Read-only, scoped to characters and profile. Savecraft is a GGG-approved connecting application.

Characters import

Every non-deleted character comes in: equipped gear, skill gems with their supports, and the full passive tree with ascendancy choices.

Ask, refresh, repeat

Ask about any character by name. After a session, refresh in Savecraft to pull the latest state -- your AI always tells you how fresh its view is.

METHODOLOGY

We show our work

Official APIs, defensive engineering, and a roadmap we're honest about.

GGG's official API Character data comes straight from Grinding Gear Games' own API through an approved, read-only OAuth connection. No scraping, no session tokens, no account risk.
poe.ninja, defensively poe.ninja's PoE2 API is undocumented and has already changed shape once -- so every response is contract-validated before use. A mismatch, error, or timeout degrades to one clear 'unavailable' message. You never get partial prices or stale guesses presented as fresh.
The roadmap, honestly No Path of Building-style calc yet -- PoB2 enrichment is a future epic. No unequipped inventory -- GGG's PoE2 API doesn't expose it. When these land, this page will say so; until then, we don't pretend.
MEET YOUR PLAYER TWO Chat about Path of Exile 2 with Savecraft. It reads save files for games that ship save support, remembers your plans, and brings game tools into your next move.
MEET PLAYER TWO

Give your AI your actual exile.

GGG-approved, read-only, works with Claude and ChatGPT.