# REPL internals documentation

**URL:** <https://discourse.julialang.org/t/repl-internals-documentation/8997>\
**Category:** New to Julia\
**Created:** [February 11, 2018, 3:36pm UTC](https://discourse.julialang.org/t/repl-internals-documentation/8997 "2018-02-11T15:36:05Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![ckoe-bccms](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ckoe-bccms/32/1816_2.png) [@ckoe-bccms](https://discourse.julialang.org/u/ckoe-bccms)\
**Post date:** [February 11, 2018, 3:36pm UTC](https://discourse.julialang.org/t/repl-internals-documentation/8997/1 "2018-02-11T15:36:05Z")

</div>

Hello everybody,

I am looking for documentation concerning the REPL internals. Background:

I was trying to understand the insertion of additional input modes and keymappings done in this simple program:  
[https://github.com/tshort/Calc.jl/blob/master/src/Calc.jl](https://github.com/tshort/Calc.jl/blob/master/src/Calc.jl)  
I was not able to find documentation concerning the REPL internal functions called, e.g. REPL.respond, REPL.return\_callback or LineEdit. Looking at julia/base/REPL.jl directly I see that is does also not conatin any documentation at all.

Best Regards

Christof

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [February 11, 2018, 7:11pm UTC](https://discourse.julialang.org/t/repl-internals-documentation/8997/2 "2018-02-11T19:11:42Z")

</div>

Providing a real API and documentation for the REPL stuff is definitely a relatively high priority project for post 1.0, but it hasn’t made it to the top of the todo list just yet. The general approach (which I used when implementing the REPL mode for [Pkg3](https://github.com/JuliaLang/Pkg3.jl)) is to look at some package which has a REPL mode and modify it until it works. Clearly not ideal, but it works. If you want to use Pkg3’s REPL mode as starting point, the relevant code is here:

[https://github.com/JuliaLang/Pkg3.jl/blob/776d31a58b6f542158d899588908b733ef2e5e4f/src/REPLMode.jl#L492-L547](https://github.com/JuliaLang/Pkg3.jl/blob/776d31a58b6f542158d899588908b733ef2e5e4f/src/REPLMode.jl#L492-L547)

---

<div class="post-metadata">

**Author:** ![ckoe-bccms](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ckoe-bccms/32/1816_2.png) [@ckoe-bccms](https://discourse.julialang.org/u/ckoe-bccms)\
**Post date:** [February 11, 2018, 8:13pm UTC](https://discourse.julialang.org/t/repl-internals-documentation/8997/3 "2018-02-11T20:13:14Z")

</div>

Hello,

thank you for the answer. I will try it.

Best Regards

Christof
