LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

wisp

Linux shell with Lua scripting and structured pipelines

TLDR

Start an interactive wisp session
$ wisp
copy
Run a shell command string and exit
$ wisp -c "[ls | wc -l]"
copy
Run a Lua expression and exit
$ wisp -e "[for i=1,5 do print(i) end]"
copy
Run a Lua script file
$ wisp -f [script.lua]
copy
Evaluate Lua at the prompt (leading colon)
$ :print(42 * 10)
copy
Background a job and list jobs (inside wisp)
$ sleep 30 &
copy
$ jobs
copy

SYNOPSIS

wisp [-c command] [-e lua] [-f file]

DESCRIPTION

wisp is a Linux shell that uses Lua (not a custom DSL) for configuration and scripting, and can pass structured data (Lua tables) between consecutive pipeline stages instead of only text.Bare prompt lines use ordinary shell syntax: external commands, pipes, redirects (`<` `>` `>>` `2>` `2>&1` `&>`), background jobs (`&`), environment assignments, quoting, brace expansion, and globbing. Job control is supported (`Ctrl-Z`, `fg`, `bg`, `jobs`, `kill %N`, `disown`, `wait`). Tab completion covers builtins, Lua functions, `$PATH` executables, and filenames; Ctrl-R is reverse history search.A line starting with : is evaluated as Lua. User-defined Lua functions and builtins that form a "native run" stay in-process and chain Lua values (for example lists of tables) without forking. When a pipeline stage is a real external binary, wisp forks and converts between structured values and bytes at that boundary.Builtins include cd, pwd, echo, export, command, type, source, jobs, fg, bg, kill, disown, wait, exit, and pkg (a thin front end to LuaRocks, requiring luarocks on `$PATH`).Requires Lua 5.4 development headers to build (`liblua5.4-dev` on Debian/Ubuntu, `lua5.4` on Arch). Install with `make && sudo make install` (default `/usr/local/bin/wisp`), or `lua bootstrap.lua build`.

PARAMETERS

-c command

Execute a shell-syntax command line and exit. A leading : switches the string to Lua.
-e lua
Execute a Lua expression or chunk and exit.
-f file
Run a Lua script file (also usable via shebang `#!/usr/bin/env wisp`).

CONFIGURATION

~/.config/wisp/init.lua

User config loaded at startup. Any global Lua function defined here is callable by name as a shell command. Define prompt() for the interactive prompt. Copy example-init.lua from the repository as a starting point.

CAVEATS

Linux-focused; not a full POSIX shell. No shell-grammar `if`/`while`/`for`, heredocs, or `$1`..`$9` positional parameters — control flow belongs in Lua. Word splitting on expansion results is not POSIX-style (unquoted `$VAR` with spaces stays one argument). No sandboxing of `init.lua` (same trust model as `.bashrc`). Backgrounding an all-native pipeline is a no-op. Optional pkg needs LuaRocks installed separately.

HISTORY

wisp is a Lua-native Linux shell emphasizing structured pipelines and real job control. Upstream is maintained at github.com/Hinikaa/wisp under the MIT license (vendored linenoise is BSD-2-Clause).

SEE ALSO

bash(1), zsh(1), fish(1), nushell(1), lua(1)

RESOURCES

Braincup
Open source brain training for math, memory and focus
Braincup mini-games
41 mini-games · Apache-2.0
No ads · No tracking
Play in browser
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid
276 stars
From the maker of Linux Command Library
Copied to clipboard
Braincup
Open source brain training for math, memory and focus. 41 mini-games, from mental arithmetic to Sudoku, N-Back and Solo Chess.
Apache-2.0 licensed · No ads · No tracking · No account
From the maker of Linux Command Library
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid