From the comments on our PIC16F145X: Full-Speed USB with no external crystal post, Maurice Bos writes:
I wrote software to turn a PIC16F145x into a PIC16F145x programmer (over USB). It’s free and open source (GPL3), and it might be useful.
Add any feature requests (or bugs) on Github, or just e-mail me. :)
Via the comments.