You want "jj commit -i". You'll get an interface that lets you choose files, chunks, or lines to commit.
Or if you don't care to set a commit message just yet: jj split -i
Or if you want to defer making sure each commit has the right content until later, just use jj new, and then later use jj squash and jj split to make the commits have sensible changes, and jj desc to set the descriptions.
I'm trying jj. I've seen enough mentions now. I've never read anything about it.
I hope it's compatible with git.
ctrl+f "tool"