# Environment prompt in the REPL

**URL:** https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795
**Category:** General Usage
**Created:** [October 25, 2018, 5:46pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795 "2018-10-25T17:46:00Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)
#### Post date: [October 25, 2018, 5:46pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/1 "2018-10-25T17:46:00Z")

</div>

Hello,

I’d like to know how I could change the `julia>` prompt REPL when I activate a project. In the package manager prompt, the environments are indicated, but not when I go back to the REPL. I think it would be less confusing if we can know in which environment we are.

Thanks!

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [October 25, 2018, 7:24pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/2 "2018-10-25T19:24:46Z")

</div>

Ugly, but does the job…

```julia
julia> import Pkg

julia> Base.active_repl.interface.modes[1].prompt =
                 Pkg.REPLMode.promptf()[1:end-6] * " julia> "

(v1.1) julia> 1+1
2

```

---

<div class="post-metadata">

### Author: ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)
#### Post date: [October 25, 2018, 7:37pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/3 "2018-10-25T19:37:38Z")

</div>

Nice!  
Can’t put it in the `startup.jl` though 😕

```bash
user@Linux-Roy:~$ julia
ERROR: LoadError: UndefVarError: active_repl not defined
Stacktrace:
 [1] getproperty(::Module, ::Symbol) at ./sysimg.jl:13
 [2] top-level scope at none:0
 [3] include at ./boot.jl:317 [inlined]
 [4] include_relative(::Module, ::String) at ./loading.jl:1041
 [5] include at ./sysimg.jl:29 [inlined]
 [6] include_ifexists at ./client.jl:191 [inlined]
 [7] load_julia_startup() at ./client.jl:288
 [8] exec_options(::Base.JLOptions) at ./logging.jl:312
 [9] _start() at ./client.jl:421
in expression starting at /home/user/.julia/config/startup.jl:18

```

Any idea how to set it up automatically?

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [October 25, 2018, 7:46pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/4 "2018-10-25T19:46:03Z")

</div>

```julia
import REPL
import Pkg
Base.atreplinit() do repl
    repl.interface = REPL.setup_interface(repl)
    repl.interface.modes[1].prompt =
                 Pkg.REPLMode.promptf()[1:end-6] * " julia> "
end

```

---

<div class="post-metadata">

### Author: ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)
#### Post date: [October 25, 2018, 8:03pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/5 "2018-10-25T20:03:45Z")

</div>

Very nice, thanks a lot! 🙂

Works like a charm.

---

<div class="post-metadata">

### Author: ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)
#### Post date: [October 25, 2018, 8:21pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/6 "2018-10-25T20:21:34Z")

</div>

Here’s my working setup for `startup.jl` using OhMyREPL, Revise and this workaround in case someone is interested!

```julia
import REPL
import Pkg
atreplinit() do repl
    repl.interface = REPL.setup_interface(repl)
    repl.interface.modes[1].prompt = Pkg.REPLMode.promptf()[1:end-6] * " julia> "
    @eval using OhMyREPL
    @eval colorscheme!("BoxyMonokai256")
    @eval ENV["JULIA_INPUT_COLOR"] = :bold
    @eval ENV["JULIA_ANSWER_COLOR"] = :bold

    try
        @eval using Revise
        @async Revise.wait_steal_repl_backend()
    catch
    end
end

```

---

<div class="post-metadata">

### Author: ![musm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/musm/32/3675_2.png) [@musm](https://discourse.julialang.org/u/musm)
#### Post date: [October 26, 2018, 9:28pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/7 "2018-10-26T21:28:46Z")

</div>

I’d love to get this working but switching environments doesn’t seem to switch the repl for me

```julia
import REPL
import Pkg

@sync atreplinit() do repl
    repl.interface = REPL.setup_interface(repl)
    repl.interface.modes[1].prompt = Pkg.REPLMode.promptf()[1:end-6] * " > "

    # try
    # @eval using BenchmarkTools
    # # @eval using Revise
    # # @async Revise.wait_steal_repl_backend()
    # catch
    # end
end

```

is permanently stuck at `(1.0) julia >` even when I change environments

---

<div class="post-metadata">

### Author: ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)
#### Post date: [October 26, 2018, 10:04pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/8 "2018-10-26T22:04:40Z")

</div>

Indeed, I can confirm that the prompt does not update to the new one when I switch between project.

edit - I’m now loading a function in `startup.jl`. So, when I switch projetcs, I need to execute `ap()`. I’m sure there’s a better way to do it. I think that it might be a good feature/bahaviour for a 1.0.2 release.

```julia
function ap()
    Base.active_repl.interface.modes[1].prompt = Pkg.REPLMode.promptf()[1:end-6] * " julia> "
end

```

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [October 26, 2018, 10:16pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/9 "2018-10-26T22:16:45Z")

</div>

Use

```julia
 () -> Pkg.REPLMode.promptf()[1:end-6] * " julia> "

```

instead

---

<div class="post-metadata">

### Author: ![musm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/musm/32/3675_2.png) [@musm](https://discourse.julialang.org/u/musm)
#### Post date: [October 26, 2018, 10:25pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/10 "2018-10-26T22:25:29Z")

</div>

Thanks!  
here’s mine for anyone interested

```julia
import REPL
import Pkg
atreplinit() do repl
    repl.interface = REPL.setup_interface(repl)
    repl.interface.modes[1].prompt = () -> begin
        str = Pkg.REPLMode.promptf()
        occursin(r"(v[0-9].[0-9])", str) ? "> " : str[1:end-6] * " > "
    end
end

```

---

<div class="post-metadata">

### Author: ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)
#### Post date: [October 26, 2018, 10:30pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/11 "2018-10-26T22:30:11Z")

</div>

Awesome! Thanks @kristoffer.carlsson for your valuable inputs and @musm for your configuration. 🙂

---

<div class="post-metadata">

### Author: ![musm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/musm/32/3675_2.png) [@musm](https://discourse.julialang.org/u/musm)
#### Post date: [October 31, 2018, 6:05am UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/13 "2018-10-31T06:05:23Z")

</div>

Actually changing the prompt like this **breaks** Rebugger… I’m hoping there is a way to change the repl and have Rebugger work

---

<div class="post-metadata">

### Author: ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)
#### Post date: [April 10, 2019, 1:56pm UTC](https://discourse.julialang.org/t/environment-prompt-in-the-repl/16795/14 "2019-04-10T13:56:59Z")

</div>

Did you succeed at having Rebugger and the prompt working together?

Thanks!
