Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to bundle up a Mathematica package that I've written and distribute it as open source. It has a couple of dependencies that I'd like to automatically download independently from my package as well.

Is there any sort of established Mathematica package manager and package distribution site? (I'm thinking along the lines of pip for Python, gem for Ruby, nuget for .NET, hackage for Haskell, that sort of thing.)

I've seen Wolfram MathSource, and as near as I can tell its aim seems to be to collect various contributed packages from around the web into a central place, but it doesn't feel very active (maybe I'm wrong?).

share|improve this question

I'm not aware of any existing package manager. As to activity of Wolfram MathSource, let's ask Mathematica:

libraryLinks = 
     StringMatchQ[#, RegularExpression[".*library.*"]] &

dates = 
            _String?(StringMatchQ[#,DatePattern[{"Year", "Month", "Day"}]] &),
      ] /@  libraryLinks // Flatten;

Histogram[(DateList /@ dates)[[All, 1]], {1}]

Mathematica graphics

Indeed, it doesn't seem to be too busy lately.

share|improve this answer
Nice method/chart. I wonder why the collapse. – Mr.Wizard Jul 10 '12 at 14:56
@Mr.Wizard might have something to do with the launch of Wolfram Demonstrations. I believe that happened somewhere in 2006. There are now over 8000 demonstrations and only about 1800 MathSource entries. – Sjoerd C. de Vries Jul 10 '12 at 15:18
Perhaps, but there used to be a lot of (re)usable packages posted to MathSource. Demonstrations are neat, but hardly a substitute. – Mr.Wizard Jul 10 '12 at 15:29
mr.wizard Agreed, but I imagine many of the package authors have moved over. – Sjoerd C. de Vries Jul 10 '12 at 15:40
Absolutely, it would be very good if such a central service would exist. If something is started now, I think it probably would need to be at least as good as existing services/repositories AND be readily availabe from Mathematica, like an app-store with search + public review + one click installation. WRI offered repositories based on svn a few years ago but I don't even know if that service still exists, it certainly wasn't attractive enough. An feature that would certainly attract me as a developer would be a distributed version control well suited for notebooks (=not line based) :-) – Albert Retey May 28 '13 at 12:27

This is not really a response, but a comment. I think that the collapse of MathSource could be because of GitHub. Almost half of the packages at are hosted there:


data = Import["", "JSON"];
domains = URLParse[#url, "Domain"] & /@ ToAssociations[data];
 ChartLabels -> Placed[Automatic, "RadialCallout"],
 SectorOrigin -> 110 Degree,
 ImagePadding -> {{100, 0}, {0, 0}}

enter image description here

share|improve this answer
I really like the chart!:) – Sascha Dec 3 '15 at 20:50

Is there any sort of established Mathematica package manager and package distribution site? is a free, open-source package distribution site. It is collaborative so that anyone can add packages and improve on existing entries. It could potentially have package management features in the future if it grows in popularity.

share|improve this answer

Why don't we make one? Here's a start -- feel free to try it at home :)

ClearAll[mfvonh, HelloWorld];
Import["", "Text"] // ToExpression;
mfvonh[Install, {"Testing", "HelloWorld"}];

Hello, world! -mfvonh

You can distribute any kind of content (definitions, data, docs, etc.) this way. Here's how it works:

I run a webserver at, and /mma is just a directory containing whatever I need to transfer (text files with definitions, data, etc.). The "install" file looks like this:

Import["", "Text"]


mfvonh[dir_, args___] :=
   BaseURI = "",
   ValidDirQ := MatchQ[dir, _Symbol],   
   ValidArgsQ = MatchQ[{args}, {} | {{__String} .., ___Rule}],
   FromMFVONH = Import[#, "Text"] &,
   Exec = ToExpression[#] &},
    Exec /@ FromMFVONH /@ (StringJoin[Riffle[{BaseURI, ##}, "/"]] & @@@
         Cases[{args}, _List])
    ] /; ValidDirQ && ValidArgsQ

So in the example {"Testing", "HellWorld"} is resolved to the corresponding path on the server, which is also just a file:

Import["", "Text"]


SetDelayed[HelloWorld[],Print["Hello, world! -mfvonh"]]

The simple way to define dependencies would be to include a reference to them in the install script, and a generic check to see if a package has already been loaded. It would be pretty easy to build out all the features of a decent package manager. Obviously executing code off the internet introduces some security considerations.

I would be willing to take this on as a project if people would use it.

share|improve this answer
Talk to Leonid in chat, he's been working on one. – Szabolcs May 28 '14 at 23:51
I also have a start at, and have been sort of waiting to see whether there was even enough interest in the idea to justify more effort. Starting to look like there might be enough interest for this to work. You use mine by saying Import[""], or if Mpg is already installed, by saying Needs[Mpg``]. It doesn't really do much yet, but I'm really proud of the bootstrap story. – sblom May 28 '14 at 23:52
@sblom If you have a chance would you please share here? Yours has some functionality that my prototype does not. – mfvonh Jun 4 '14 at 16:12

At the Wolfram Technology Conference 2015 there was mention (at the keynote, if I recall correctly) of a Wolfram App Store that is in development. This would allow people to sell or freely distribute packages, mobile apps, and CDFs developed with the Wolfram Language. It was not stated how far out this service was.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.