I'd say just build a habit to put * on most objects and procs.
There is also all pragma to import private functions and symbols, but that doesn't import private object fields without using std/importutils.privateAccess():
import foo {.all.} You can mitigate this to an extent, by just making Nim include guards, here is an example:
lib.nim
when not defined(libraryNameHere):
{.define: libraryNameHere.}
# Write your entire library here.
proc add(a, b: int): int =
return a + b
You should be able to include that anywhere you wish, but let's be honest: It's extremely finicky and annoying. It's much easier to just use the {.all.} pragma, or getting in the habit of writing * to expose the objects you want.