# \[ANN\] ShareAdd.jl - making easy to import packages from multiple environments

**URL:** https://discourse.julialang.org/t/ann-shareadd-jl-making-easy-to-import-packages-from-multiple-environments/121261
**Category:** Package Announcements
**Tags:** package, announcement, workflow, shared-environments, stacked-environments
**Created:** [October 13, 2024, 6:38pm UTC](https://discourse.julialang.org/t/ann-shareadd-jl-making-easy-to-import-packages-from-multiple-environments/121261 "2024-10-13T18:38:19Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![Eben60](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eben60/32/13475_2.png) [@Eben60](https://discourse.julialang.org/u/Eben60)
#### Post date: [December 1, 2024, 11:00am UTC](https://discourse.julialang.org/t/ann-shareadd-jl-making-easy-to-import-packages-from-multiple-environments/121261/3 "2024-12-01T11:00:09Z")

</div>

ShareAdd.jl can be combined nicely with BasicAutoloads.jl by @Lilith .

Here is my current `startup.jl`:

```julia

if VERSION >= v"1.11" && isinteractive()
	using ShareAdd
    import BasicAutoloads
    BasicAutoloads.register_autoloads([
    	["plot", "scatter"] => :(isdefined(Main, :plot) || @usingany Plots),
    	["DataFrame", "combine", "transform!", "transform", "select!", "select", "groupby"] 
    		=> :(@usingany DataFrames),
    	["CSV"] => :(@usingany CSV, StringEncodings, DataFrames),
    	["Dates", "Date","DateTime"] => :(@usingany Dates),
    	["mean", "std", "median"] => :(isdefined(Main, :mean) || @usingany Statistics), 
    	["@u_str"] => :(@usingany Unitful),  
    	["@benchmark"] => :(@usingany BenchmarkTools),   	
    ])
    println("ShareAdd & BasicAutoloads are loaded")
end

```

Now, should I e.g. type `mean([1,2,3])` or `1.55u"V"` in the REPL, Statistics.jl or resp. Unitful.jl would be first silently loaded.

The “main” shared environment, i.e. the folder “~/.julia/environments/v1.11/” contains now only `Revise`, `ShareAdd`, and `BasicAutoloads`. Most “shared” packages are each individually in the eponymous env, like `Plots` package is in `@Plots` shared env.

---

_[View the full topic](https://discourse.julialang.org/t/ann-shareadd-jl-making-easy-to-import-packages-from-multiple-environments/121261)._
