# CLI tools for Julia?

**URL:** <https://discourse.julialang.org/t/cli-tools-for-julia/9445>\
**Category:** General Usage\
**Created:** [March 2, 2018, 8:51am UTC](https://discourse.julialang.org/t/cli-tools-for-julia/9445 "2018-03-02T08:51:59Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Roger-luo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/roger-luo/32/3399_2.png) [@Roger-luo](https://discourse.julialang.org/u/Roger-luo)\
**Post date:** [March 2, 2018, 8:51am UTC](https://discourse.julialang.org/t/cli-tools-for-julia/9445/1 "2018-03-02T08:51:59Z")

</div>

I was wondering if there is any CLI(command line interface) tools for julia. like `npm` for node, `gem` for ruby, `pip` for python.

Julia itself has a package manager and some macros in REPL (@which, @edit, etc.). But there is no command line interface for it. I think it would be more convenient for \*nix users to have one (for shortcuts sometimes). I am thinking whether to write one my own (or this is already in Julia team’s plan?), but I’m not sure if this is really something you would like. What do you think?

And any suggestions on the name? Currently I thought is `jem` (Julia Environment Manager).

Ps. Pkg3 has a clicmd already. My question is answered in this [issue](https://github.com/JuliaLang/Pkg3.jl/issues/168#issuecomment-369875210), thanks your guys anyways.

---

<div class="post-metadata">

**Author:** ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)\
**Post date:** [March 2, 2018, 8:59am UTC](https://discourse.julialang.org/t/cli-tools-for-julia/9445/2 "2018-03-02T08:59:38Z")

</div>

You don’t think of `Pkg` as `pip` for python?

---

<div class="post-metadata">

**Author:** ![Roger-luo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/roger-luo/32/3399_2.png) [@Roger-luo](https://discourse.julialang.org/u/Roger-luo)\
**Post date:** [March 2, 2018, 9:02am UTC](https://discourse.julialang.org/t/cli-tools-for-julia/9445/3 "2018-03-02T09:02:37Z")

</div>

You can not use `Pkg` in a Linux shell…

You have to open REPL. But pip is something can be directly called in terminal. It’s not a big problem for Windows users I guess (even more convenient, cuz you don’t need to use windows terminal and Julia REPL is great ). But for those who get used to \*nix terminals (like me), I just feels like to be more convenient to use `Pkg` and `PkgDev` and other staff directly from terminal CLIs. And build binary CLI will have **faster start time** (comparing to start a REPL)

And with a CLI program, we can extend it to support **virtual environment** for Julia in the future.

---

<div class="post-metadata">

**Author:** ![dfdx](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dfdx/32/120_2.png) [@dfdx](https://discourse.julialang.org/u/dfdx)\
**Post date:** [March 2, 2018, 9:53am UTC](https://discourse.julialang.org/t/cli-tools-for-julia/9445/4 "2018-03-02T09:53:15Z")

</div>

From terminal I usually use something like:

```julia
julia -e 'Pkg.add("MyPackage")'

```

which covers most of what I want. For multiple commands it makes sense to put them into `script.jl` and just run:

```julia
julia script.jl

```

Yet, I support the idea of virtual environments - there’s clear use case for different sets of installed packages on the same machine.
