cdktf the cli is all js iirc, this is because the underlying library (jsii) is all js.
From an end-user perspective, once you have your cdktf environment setup you don't really ever have to deal with node.js at all.
I've never had a reason to dig into this very deep, but my understanding is the cdktf Python libraries use JSII Python libraries which interact with the main JSII implementation which runs under node.js. That's where the conversion from Python to HCL compatible JSON happens. Or in the case of the main AWS CDK, from your favorite programming language to CloudFormation.
More info on JSII here: