Project File Extensions


I’m trying to clean up the few KiCad Projects that I have to make them appear to be native to the upcoming V5.

For a project on my computer I have:
Project.back (which appears to be sch-bak)

In the Project Window there is:

At the moment I am working with a Project that I do not wish to share the details of otherwise a screen snippet would go well right here. I’m busy at the moment and may have a generic one tomorrow.

Am I correct that the first mentioned six files are the only files I need to ZIP to have a working archive of the Project?

And, was there good reason why the extensions could not be fixed for the upversion from V4 to V5?


When I tried if my project opens in V5 I copied only .pro, .sch, .kicad-pcb and -cache.lib.
According to my experiments (I’m rather new to KiCad - one PCB done) the file -cache.lib can be deleted. When you open .sch and save it -cache.lib will be back (if your libs had not changed).
As my way of working is not to change elements once defined in libs I will backup only .pro, .sch, and kicad-pcb (of course libs also).


I assume you’re referring to ‘kicad-pcb’ and ‘-cache.lib’ parts?
Yes, they stand out as the odd ones for sure.

For versioning you’d need .pro, .sch, .cache-lib and .kicad-pcb only IMHO.


The .pro extension is especially annoying if you have some other software which uses .pro as a project file. Qt SDK does that. In my opinion there should be clear unambiguous extensions, e.g. kicad-project, .kicad-pcb, .kicad-shcematic, .kicad-sym-lib-table, .kicad-pcb-bak etc. Nowadays there’s no need for the ancient three character limitation for extensions.


The cache lib is the only place where symbol data is stored. If you delete this file and also touch the symbol in the library you might be screwed. (If you have a valid cache lib your symbols can be rescued such that your schematic stays unchanged.)

For this reason I strongly advice against removing the cache lib. (Archive it with the project. I would consider it as part of the .sch file.)


@Rene_Poschl I agree in most cases, specially if you have no control of possibly changes in library you use.
But in my case:

  • I use only my libraries,
  • I use atomic parts.

I see advantages of deleting cache libs.
Very rare we decide that (knowing of risks) we change meaning of symbol (to have them short). About 10 years ago we decided that from now on in any new project 100n means 0402 and not 0603 and made right changes in database to generate the BOM. If you do new project from some old and have cache lib and not notice that you have 0603 at PCB than end effect would be PCB with 0603 footprint and BOM with 0402 element.
I don’t know yet if KiCad haveing cache lib will give me chance to notice such situation (Protel didn’t).
So I suppose (to verify in future):

  • if I delete all cache libs I can get some old schematic corrupted (but since 20 years even if I changed some symbol graphic I’ve never moved its pins positions).
  • if I don’t delete cache libs I can have bug in new PCB design.

I prefere first of it so I consider not keeping cache libs.