This project was generated with Angular CLI version 11.2.7.
It uses Electron as a way to make it desktop ready.
Passive tree version: PoE version 3.16 (Scourge)

How does it work :
logs folder in the PoE installation directory. For example, mine is at : C:/Program Files (x86)/Steam/steamapps/common/Path of Exile/logs/client.txt so this is what I would put in this field (don't forget the client.txt part !)Ctrl + Alt + P will show the final passive tree, with masteries. If you don't have the PoB, you should have a step-by-step notable passives to pick up.It's finally here !
PoE Second Screen v1.20 introduces POB support along with a few changes. Check the PoB Format section to see how this work
Here's how the JSON should be organized, if you chose the leveling file way:
{
// This contains the gems and link section
"gearing": [
// This next section is repeatable
// (CAREFUL: you must have a section with level: 1 to start with !)
{
// Level requirement for this section
level: 1,
// Gear link
gear: [
// Sockets (can be repeated with "helmet", "body_armor",
// "gloves", "boots" & "two_handed". All 5 sections must
// be completed, even if empty)
// This next section is repeatable
{
// Item holding the links
"type": "helmet",
// Items links (B = Blue, G = Green, R = Red)
// If wrote together, sockets will form a link
// (["BB", "GB", "R"] will form a gear piece like that "B-B G-B R")
"sockets": ["BG", "B"],
// Corresponding gems, be careful of typos !
"gems": ["Frost bomb", "Onslaught", "Orb of Storms"]
},
// Empty gear example
{
"type": "body_armor",
"sockets": [],
"gems": []
}
...
]
},
...
],
// This contains the notable passives list
"notables": [
// This next section is repeatable
{
// Number of passive points required to link this notable
// Careful here: it's INCREMENTAL (see examples)
passivesRequired: 7,
// Notable name, be careful of typos !
name: "Arcanist's Dominion",
}
...
],
// This is the section that reflects the links to look for during leveling
"itemsToLookFor": [
// This next section is repeatable
{
// Minimal level to display the item
"level": 1,
// Optional : Max level after which the item shouldn't be displayed.
// If not set, item will be displayed forever after "level" is reached
"levelMax": 23,
// Items links (B = Blue, G = Green, R = Red)
// If wrote together, sockets will form a link
// (["BB", "GB", "R"] will form a gear piece like that "B-B G-B R")
"links": ["BGR"]
}
...
]
}

Your PoB must respect a few rules to be able to be imported (see above pob screenshot) :
levelX where X is the minimum level requirement for the next gem groups. On the screenshot you can see 2 groups, in blue and green, once is valid from 1 - 10, the other from 10 to the end of leveling. The orange section determines where you should put the levelX label.level1If you can't load a PoB and before creating an issue, please check all of the above, and that the pastebin link you entered exists (pastebin sometimes removes PoB-created pastes, thinking it's spam)
Using Ctrl + Alt + P will open the simplified, undirected passive tree, which looks like this

.json file with proper structure to get started (see exemples/vortex_occultist.json for guidance)Before opening an issue, please verify that your JSON file is configured accordingly (see exemples/vortex_occultist.json for guidance) or that your PoB pastebin link is correct (see PoB format section)
A JSON file can also be validated for integrity, make sure your file is OK by submitting it here: https://jsonlint.com/
Start by fixing the possible errors here before opening an issue.
Please open an issue if you find any bug in the application usage, along with reproduction steps.
⚠️ Don't forget to include your .json file or PoB pastebin link, I can't debug and solve the issue otherwise⚠️
Submit your PR if you want to add build examples, or for app evolutions.
Possible improvements :
~~I might also work on a web tool that will allow you to create your leveling without manually editing a JSON file. It would generate a link, and this link could be pasted into the app (like pastebin url's for PoB)~~ Done in v1.2.0 !
Have a nice day, exile ! 👋
$ claude mcp add poe-secondscreen \
-- python -m otcore.mcp_server <graph>