# How to ensure that a package is always loaded on startup, even in parallel kernels?

Is there a robust way to ensure that a package is always loaded on startup, even in parallel kernels?

Parallel kernels do not read Kernel/init.m.

• Don't know if they answer your question, but have you seen this and this? – Jason B. May 12 '16 at 12:30
• @JasonB I'm on the way to the solution with Autoload, but I haven't figured out all the details yet. – Szabolcs May 12 '16 at 12:32

The Autoload mechanism can be used for this. Place the package in $UserBaseDirectory/Autoload or $BaseDirectory/Autoload.
However, the package must follow the standard structure, and must have a Kernel/init.m file, otherwise it won't get loaded.
Also keep in mind that auto-loading of packages happens only after \$UserBaseDirectory/Kernel/init.m was loaded (on the main kernel; subkernels don't load the standard kernel init.m because they are launched with -noinit).