Skip to content

Stdio

Built-in standard input / output & utility functions

local stdio = require("@lune/stdio")
-- Prompting the user for basic input
local text: string = stdio.prompt("text", "Please write some text")
local confirmed: boolean = stdio.prompt("confirm", "Please confirm this action")
-- Writing directly to stdout or stderr, without the auto-formatting of print/warn/error
stdio.write("Hello, ")
stdio.write("World! ")
stdio.write("All on the same line")
stdio.ewrite("\nAnd some error text, too")
-- Reading a single line from stdin
local line = stdio.readLine()
-- Reading the entire input from stdin
local input = stdio.readToEnd()

Prompts for user input using the wanted kind of prompt:

  • "text" - Prompts for a plain text string from the user
  • "confirm" - Prompts the user to confirm with y / n (yes / no)
  • "select" - Prompts the user to select one value from a list
  • "multiselect" - Prompts the user to select one or more values from a list
  • nil - Equivalent to "text" with no extra arguments
  • kind The kind of prompt to use

  • message The message to show the user

  • defaultOrOptions The default value for the prompt, or options to choose from for selection prompts


Return an ANSI string that can be used to modify the persistent output color.

Pass "reset" to get a string that can reset the persistent output color.

stdio.write(stdio.color("red"))
print("This text will be red")
stdio.write(stdio.color("reset"))
print("This text will be normal")
  • color The color to use
  • A printable ANSI string

Return an ANSI string that can be used to modify the persistent output style.

Pass "reset" to get a string that can reset the persistent output style.

stdio.write(stdio.style("bold"))
print("This text will be bold")
stdio.write(stdio.style("reset"))
print("This text will be normal")
  • style The style to use
  • A printable ANSI string

Formats arguments into a human-readable string with syntax highlighting for tables.

  • ... The values to format
  • The formatted string

Writes a string directly to stdout, without any newline.

  • s The string to write to stdout

Writes a string directly to stderr, without any newline.

  • s The string to write to stderr

Reads a single line from stdin.

If stdin is closed, returns all input up until its closure.

  • The input from stdin

Reads the entire input from stdin.

  • The input from stdin