REPL/terminal widget #10

Closed
opened 2026-03-06 11:42:04 -08:00 by StefanKarpinski · 7 comments
StefanKarpinski commented 2026-03-06 11:42:04 -08:00 (Migrated from github.com)

How feasible would it be to support a Julia REPL widget? Or maybe even an embedded terminal widget, which would subsume REPL functionality, although you could have a REPL widget then that is a terminal widget that launches a Julia session inside of it.

How feasible would it be to support a Julia REPL widget? Or maybe even an embedded terminal widget, which would subsume REPL functionality, although you could have a REPL widget then that is a terminal widget that launches a Julia session inside of it.
kahliburke commented 2026-03-06 15:27:07 -08:00 (Migrated from github.com)

@StefanKarpinski, thanks for the interest in the project! I'll make it happen, sounds like a great idea and very feasible. :)

@StefanKarpinski, thanks for the interest in the project! I'll make it happen, sounds like a great idea and very feasible. :)
kahliburke commented 2026-03-08 21:52:21 -07:00 (Migrated from github.com)

It's Julia, all the way down!

Image
It's Julia, all the way down! <img width="1589" height="996" alt="Image" src="https://github.com/user-attachments/assets/1a514eba-b638-4ba8-b100-673a766319fd" />
StefanKarpinski commented 2026-03-09 10:01:34 -07:00 (Migrated from github.com)

Oh wow, that was quick! Very cool. To give a little hint of what I'm interested in: I'd really like to build a terminal-based slide presentation program that can embed a live Julia REPL so that instead of having to switch windows in order to do a REPL demo, I can do the demo in the middle of my presentation.

Oh wow, that was quick! Very cool. To give a little hint of what I'm interested in: I'd really like to build a terminal-based slide presentation program that can embed a live Julia REPL so that instead of having to switch windows in order to do a REPL demo, I can do the demo in the middle of my presentation.
kahliburke commented 2026-03-10 01:49:32 -07:00 (Migrated from github.com)

@StefanKarpinski , thanks for the clarification on the use case. So something like this (see linked video)?

https://www.dropbox.com/scl/fi/0ul4k76ktbn35ms5s1ydq/TerminalSlides.mov?rlkey=776a5j893c3b7qocbq3i3dhet&dl=0

Let me know if this hits the main points you're thinking about? It's based on Markdown for the slide content and executes Julia code side by side in the same Julia process.

Image

I'll be releasing the new version 1.1 soon, the terminal/REPL support will still be a bit experimental as there are differences in terminals and I haven't been able to test on Windows. The REPL widget would be easier to support in Windows whereas the terminal widget may be more difficult as it is trying to provide/emulate a full VT-100 style terminal.

@StefanKarpinski , thanks for the clarification on the use case. So something like this (see linked video)? https://www.dropbox.com/scl/fi/0ul4k76ktbn35ms5s1ydq/TerminalSlides.mov?rlkey=776a5j893c3b7qocbq3i3dhet&dl=0 Let me know if this hits the main points you're thinking about? It's based on Markdown for the slide content and executes Julia code side by side in the same Julia process. <img width="600" height="400" alt="Image" src="https://github.com/user-attachments/assets/1610ff4f-a6d1-4e6f-90d2-8e2679e8be28" /> I'll be releasing the new version 1.1 soon, the terminal/REPL support will still be a bit experimental as there are differences in terminals and I haven't been able to test on Windows. The REPL widget would be easier to support in Windows whereas the terminal widget may be more difficult as it is trying to provide/emulate a full VT-100 style terminal.
StefanKarpinski commented 2026-03-10 12:48:14 -07:00 (Migrated from github.com)

Wow, that's an amazing demo. Way fancier and more capable than anything I had imagined!

Wow, that's an amazing demo. Way fancier and more capable than anything I had imagined!
kahliburke commented 2026-03-11 03:33:54 -07:00 (Migrated from github.com)

Shipped in v1.1.0. Both widgets are available:

  • TerminalWidget — embedded terminal with PTY integration, full ANSI rendering, and subprocess support
  • REPLWidget — in-process Julia REPL that shares all loaded modules and variables with the host application

Both support tab completion, colors, cursor positioning, and interactive programs. The REPL widget includes Pkg mode (]), help mode (?), and shell mode (;).

Documentation: https://kahliburke.github.io/Tachikoma.jl/terminal-repl

Shipped in v1.1.0. Both widgets are available: - **`TerminalWidget`** — embedded terminal with PTY integration, full ANSI rendering, and subprocess support - **`REPLWidget`** — in-process Julia REPL that shares all loaded modules and variables with the host application Both support tab completion, colors, cursor positioning, and interactive programs. The REPL widget includes Pkg mode (`]`), help mode (`?`), and shell mode (`;`). Documentation: https://kahliburke.github.io/Tachikoma.jl/terminal-repl
StefanKarpinski commented 2026-03-11 08:30:22 -07:00 (Migrated from github.com)

Absolutely incredible work and you did it so fast! I'm blown away.

Absolutely incredible work and you did it so fast! I'm blown away.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kahliburke/Tachikoma.jl#10
No description provided.