@Roses: This script ought to carry you some of the way: https://github.com/PatrikLundell/scripts/blob/own_scripts/thoughts.lua. Note that it's a web page with the script on it, not a link to a .lua file.
That's the exact script I remembered! Yay, I wasn't being silly this time. Do you mind if I use some/all of it (with credit of course)? Then I would just need to do something similar for attributes, appearance, and health and it would be perfect.
I don't care much about credits, apart from when people explicitly claim to have made stuff they've gotten from elsewhere. After all, the whole DFHack script thing is a process of building upon stuff others have made before (mine being no exception, of course). You're free to make use of it as is or take the parts you need, although it would probably be best if your script didn't end up with the same name, as that can lead to confusion down the line.
I believe some parts of the script will have to be adjusted when a new DFHack version appears, as I think there are references in there to fields that have been identified in DFHack pull requests, but not yet incorporated into a new version (I know a couple of new thoughts ought to be adjusted, but I believe they'll still work with indices rather than names).
As you may see, I started out trying to replicate the thoughts screen (for use with gremlins, visitors, and the odd distracted cat), but changed course to rather try to display all the info in the structures, rather than the truncated display DF provides such as e.g. which song Urist enjoyed singing, or who Urist fought when in conflict (DF provides some of that in the top thought at times).
When it comes to attributes, etc. I can't provide any support as I haven't messed with those parts.