Claude Code Skill to fill the PowerBuilder To-Do List from outside the IDE
A Claude Code skill that writes entries into the PowerBuilder IDE To-Do List (Tools > To-Do List) without opening the IDE, so an AI assistant can search your source and leave you the results already pointing at the right object and the right line.
What problem it solves
You ask an AI assistant "find every place where of_calcular is used" and you get fourteen hits, each with a file and a line number. Then you open all fourteen by hand in the IDE.
The To-Do List already does exactly what is needed: every entry stores a link to an object, and opening the entry takes you there. What the IDE cannot do is let you write down something you have not opened yet - its "Add Linked" option links whatever painter you currently have in front of you.
This fills that list from the outside.
How it looks
> python pbtodo.py info
Modo: solucion
Target: C:\...\PyPbExample\pypbexample.pbproj
IDE abierto: no
> python pbtodo.py add w_main:159 w_main:160 n_cst_pyton_excel:100 \
--texto "Uses of of_set_celda" --fuente
Entradas: 0 -> 3
(dry run: nothing was written. Add --escribir to do it for real.)
Open PowerBuilder, go to Tools > To-Do List, and the entries are there. Double-click and you are inside the object, on the line.
Commands
info what PB project is here, installed versions, IDE running?
find <pattern> find objects by name (* and ? allowed)
list show the current To-Do List
add <object[:line]> add entries
done <pattern> check / uncheck the box
rm <pattern> delete entries (also --hechas / --todas)
open <object> the other way around: launch the IDE on that object
Everything that writes is dry run by default, and the registry key is exported to a .reg backup before any change.
Installation
This is not a PowerBuilder workspace you open in the IDE. There is no .pbsln and no PowerScript: it is a Claude Code skill, which means four Python modules plus a SKILL.md file. Clone it into your Claude Code skills folder, using the skill name as the folder name:
git clone github.com/rasanfe/PbTodoList.git "%USERPROFILE%\.claude\skills\pb-todo"
Then just ask for it in plain language:
"find where of_set_celda is used and leave the hits in my To-Do List"
Requirements: Windows, PowerBuilder installed (tested on 2025 R2) and Python 3.8 or later. No third-party packages - standard library only.
Two things you must know
1. The IDE must be closed
PowerBuilder keeps the list in memory and writes its own copy back when it closes, so anything written from outside while the IDE is running gets overwritten. The scripts refuse to write if they detect the IDE running. In other words: this is for preparing work before you sit down, not for driving a running IDE.
2. Line numbers are counted differently in each view
By default the entry opens the painter and the line is counted within the script; with --fuente it opens Edit Source and the line is counted within the .sr* file, which starts with the global type, forward prototypes and so on. If you got the number by reading the file, use --fuente.
A note on support
The To-Do List is designed to be used from the IDE, and the documentation covers it from that angle. This tool writes the same data directly, under HKCU\Software\Sybase\PowerBuilder\<version>\... That is not a public API and Appeon has made no commitment to keep that storage format stable, so it may change in a future release. Everything published here was verified against the real registry rather than assumed, backups are taken before writing, and nothing is written unless you explicitly ask for it. If an official way to do this ever appears, I will happily drop this and use that instead.
Credit
To Roland Smith of Topwiz Software (www.topwizprogramming.com). His PBSearch has a "To Do List" button, and that is where many of us first found out this window was good for something.
Links
· Source code: github.com/rasanfe/PbTodoList
· Full article (Spanish): rsrsystem.blogspot.com/2026/08/usando-to...owerbuilder-con.html
· I'm also attaching a copy of the repository as a ZIP file.
This message has an attachment file.
Please log in or register to see it.
Please Log in or Create an account to join the conversation.
Hi Jim, good point, and thanks for reading!
You're right: it's not a hard technical requirement. PBSearch writes to the same place (the registry key where the IDE
keeps the To-Do List), and it doesn't check whether the IDE is running. My skill does check, on purpose, because of
what I saw while testing it:
- While the IDE is open, it doesn't pick up entries added from outside. You only see them after closing and reopening
it. - On exit, if the To-Do window was used during that session, the IDE writes its in-memory copy back to the registry
and overwrites whatever was added externally. I lost a few entries this way while testing: the list ended up empty. - If you don't open the To-Do window in that session, the IDE doesn't write it back and nothing is lost. That's
probably why it works fine for you with PBSearch most of the time.
So "must be closed" is really "safer closed". I prefer the tool to refuse rather than silently lose work, since the
idea is to prepare the list before opening the IDE. And I guess few people have run into this because, as you said,
hardly anyone used the To-Do List before PBSearch made it handy.
If you find that any of this doesn't hold true on your side, please let me know. I'd be glad to correct it.
Regards's,
Agra
Ramón.
Please Log in or Create an account to join the conversation.
Curious, PBSearch doesn't seem to have the limitation that the IDE must be closed in order to update the ToDo list.
You are correct saying until I found that option in PBSearch, I had little/no use of the ToDo list in PB, but now I use it often from PBSearch.
Please Log in or Create an account to join the conversation.