This Curve Editor, written by Jehee Lee in 2015, is a freeware.
You can use, modify, redistribute the code without restriction.
This software requires python3, numpy, and glfw to be installed.
I use this code mainly for teaching computer graphics and computer animation courses.
[c] Toggle open/closed
[v] Toggle show/hide latent points
[d] Delete a point
[x] Delete all points
[up/down arrow] in subdivision mode: level up/down
[up/down arrow] in Lagrange mode: add/remove control points
[left/right arrow] rotate control points
 Natural spline
 Catmull-Rom spline
 Lagrange polynomial
 Bezier spline
 Cubic B-spline subdivision
 Corner cutting subdivision
 Interpolatory subdivision