# Julialauncher vs Julia REPL

**URL:** <https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [January 28, 2025, 4:02pm UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308 "2025-01-28T16:02:36Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Owen77S](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/owen77s/32/212276_2.png) [@Owen77S](https://discourse.julialang.org/u/Owen77S)\
**Post date:** [January 28, 2025, 4:02pm UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/1 "2025-01-28T16:02:36Z")

</div>

Hi, I’m a new user of Julia and I’m a bit confused something.

What’s the difference between launching julia in a terminal (with the command julia) and launching it by executing a random file ?

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [January 28, 2025, 4:43pm UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/2 "2025-01-28T16:43:11Z")

</div>

Could you clarify what “Julialauncher” is or how you launch Julia by executing a random file?

---

<div class="post-metadata">

**Author:** ![Jake](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jake/32/46007_2.png) [@Jake](https://discourse.julialang.org/u/Jake)\
**Post date:** [January 28, 2025, 7:05pm UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/3 "2025-01-28T19:05:59Z")

</div>

In my windows setup Notepad.exe launches when I double click a file. I assume OP has his setup to launch Julia with a double click.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 28, 2025, 7:39pm UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/4 "2025-01-28T19:39:38Z")

</div>

I am not so sure what you try to do, but I would suggest:

- launch Julia from the terminal
- use [WindowsTerminal](https://apps.microsoft.com/detail/9n0dx20hk701?hl=en-US&gl=US), not CommandLine
- I would prefer to use Bash in WindowsTerminal instead of PowerShell, but that is a matter of taste. If you install [https://gitforwindows.org/](https://gitforwindows.org/) you get Bash for free, and you have also git if you should want to use it later.

I tell my students to work like this for a week. If they are comfortable with using the command line and the Julia REPL, then they might want to install VSCode. VSCode is more powerful, but also requires more time for learning how to use it. If you have VSCode installed you can also use a Bash terminal from within VSCode.

See also [Working with Julia projects | Julia programming notes](https://ufechner7.github.io/2022/08/16/julia-projects.html)

---

<div class="post-metadata">

**Author:** ![Owen77S](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/owen77s/32/212276_2.png) [@Owen77S](https://discourse.julialang.org/u/Owen77S)\
**Post date:** [January 29, 2025, 10:14am UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/5 "2025-01-29T10:14:55Z")

</div>

First thanks for the replies

> [@nilshg](#):
>
> clarify

By julialauncher, I mean this terminal :

 ![image](https://global.discourse-cdn.com/julialang/original/3X/8/a/8a9857870f665d3d1ad0924b08411e6c2dddb2bc.png)

It appears when I’m using the julia command in the cmd.

By executing a random file, I mean executing a Julia file without any REPL created.

By the way, I’m using vscode.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 29, 2025, 10:57am UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/6 "2025-01-29T10:57:08Z")

</div>

For me, what VSCode is doing here is not transparent. I would just use Bash and start Julia from the Bash shell. Then you can also start Julia with any options you might need, like number of threads or `--project` or whatever. To see all available options run:

```julia
julia --help

```

If you have [gitforwindows](https://gitforwindows.org/) installed the option to launch a Bash terminal should also appear in VSCode.

---

<div class="post-metadata">

**Author:** ![p\_f](https://avatars.discourse-cdn.com/v4/letter/p/45deac/32.png) [@p\_f](https://discourse.julialang.org/u/p_f)\
**Post date:** [January 29, 2025, 12:20pm UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/7 "2025-01-29T12:20:37Z")

</div>

Hi Owen,

From my understanding, the VSCode REPL should behave similarly to the REPL launched from command line, but will automatically enable some convenience features:

It enables things like “Send current line or selection to REPL”, so you can place your cursor on a line of code and hit ctrl+enter to run that line of code in the REPL.

If you are using Julia environments, VSCode will detect your environments and launch Julia in them, and you can pick environments in the bottom left:  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/3/d/3d3047c18bac215550ec0a721eb77c672300f7f6.png)

If you are using e.g. Plots.jl or CairoMakie.jl, plots will show up in the plot pane:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/c/0/c010ada12455b583e2acb75e1ed3e98bc2528da1.png)

You can look at your workspace and display vectors/matrices by clicking on them:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/f/a/fad5677c6173b8466bc4028e853db2f56b1ca85a.png)

If you launch Julia from command line, you can gain these features back by running “Julia: Connect external REPL” from the VSCode command palette (ctrl+shift+p) and pasting the code into your Julia session

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [January 29, 2025, 8:24pm UTC](https://discourse.julialang.org/t/julialauncher-vs-julia-repl/125308/8 "2025-01-29T20:24:42Z")

</div>

The short version of what I’m writing below is that I think you can ignore this entire question of “What is `julialauncher`?” as a user.

Here is the backstory: When you install Julia these days it uses Juliaup. Juliaup ships with a very small binary called `julialauncher`, and then it puts a `julia` command onto the `PATH` that is essentially just an alias for `julialauncher`. On Windows it is doing that via an execution aliase, on Mac/Linux via a symbolic link.

When you type `julia` in a terminal or somewhere else, what really launches is `julialauncher`. That binary then figures out which Julia version you _actually_ want to run, depending on your default Juliaup channel etc. On Mac/Linux it then replaces the `julialauncher` process with the `julia` binary from the version you want to launch, on Windows it launches the `julia` binary you want as a child process. So `julialauncher` serves the role of the Julia version multiplexer.
