NAME
Tickit::Terminal::Prompt - a scrolling terminal command prompt
SYNOPSIS
my $ui = Tickit::Terminal::Prompt->new( prompt => 'demo> ', on_enter => sub ($ui, $line) { $ui->say("You entered: $line"); $ui->stop if $line eq 'quit'; }, ); $ui->run;
DESCRIPTION
A shell-like terminal interface with a command prompt and a scrolling output. The command line allows editing using Backspace, Left, Home, Ctrl-A, Ctrl-E, Ctrl-H, Ctrl-K, Ctrl-U and Ctrl-W as in ReadLine. Ctrl-C stops the interface.
The application supplies a callback that receives the command text when the user presses Enter.
With a small amount of additional code this library can be used to build a command processor for terminal applications, or an actual unix shell.
METHODS
new
Requires on_enter => sub ($ui, $line) { ... }. The optional prompt defaults to >. Prompts must fit on one line.
print, say
Append text to the scroller. say adds a newline. Calls to print without a newline continue the current output line.
set_prompt
Replace the prompt while retaining any command currently being edited.
run, stop
Start or stop the event loop. stop scrolls to the bottom, lets the final redraw complete, and places the terminal cursor on the bottom row before stopping. After Tickit restores the terminal, run flushes and prints a newline so the shell prompt appears on the next line. Ctrl-C calls stop.
AUTHOR
Joel Roth <joelz@pobox.com>
LICENSE
Copyright (C) 2026 Joel Roth.
This is free software; you may redistribute it and/or modify it under the same terms as Perl itself.