| Crates.io | molten_rune |
| lib.rs | molten_rune |
| version | 0.1.0 |
| created_at | 2025-12-14 18:55:29.683275+00 |
| updated_at | 2025-12-14 18:55:29.683275+00 |
| description | Shell glamour - beautiful prompts and output for scripts 🪄 |
| homepage | https://molten.dev |
| repository | https://github.com/moltenlabs/molten-rune |
| max_upload_size | |
| id | 1984929 |
| size | 70,550 |
Shell glamour - beautiful prompts and output for scripts.
Features • Installation • Usage • CLI
Rune is the Rust equivalent of gum from Charmbracelet. It provides beautiful interactive prompts and styled output for shell scripts and CLI applications.
📝 InputGet text input with style.
|
✅ ConfirmYes/no confirmations.
|
📋 ChooseSelect from a list.
|
🔍 FilterFuzzy search through options.
|
🔄 SpinShow spinners while working.
|
🎨 StyleStyle arbitrary text.
|
cargo add rune
cargo install rune
Rune also works as a standalone CLI tool for shell scripts:
NAME=$(rune input --prompt "Name:" --placeholder "Enter name...")
echo "Hello, $NAME"
if rune confirm "Deploy to production?"; then
./deploy.sh
fi
CHOICE=$(rune choose "Development" "Staging" "Production" --header "Select environment:")
echo "Deploying to $CHOICE"
FILE=$(rune filter *.rs --header "Select a file:")
code "$FILE"
rune spin "Installing dependencies..." --duration 5
rune style "Success!" --foreground "#10B981" --bold
rune style "Warning" --foreground "#F59E0B" --border rounded --padding "1,2"
#!/bin/bash
# Welcome message
rune style "🪄 Setup Wizard" --foreground "#F97316" --bold
# Get project name
PROJECT=$(rune input --prompt "Project name:" --placeholder "my-project")
# Choose template
TEMPLATE=$(rune choose "web" "cli" "library" --header "Select template:")
# Confirm
if rune confirm "Create $PROJECT using $TEMPLATE template?"; then
rune spin "Creating project..." --duration 2
rune style "✓ Project created!" --foreground "#10B981" --bold
else
rune style "Cancelled" --foreground "#EF4444"
fi
input("Prompt")
.placeholder("hint") // Placeholder text
.default("value") // Default value
.password() // Hide input
.char_limit(100) // Max characters
.header("Header") // Header text
.run()
confirm("Question?")
.default(true) // Default answer
.affirmative("Yes") // Yes text
.negative("No") // No text
.run()
choose(&options)
.header("Title") // Header text
.cursor("> ") // Selection cursor
.limit(10) // Visible items
.run()
filter(&options)
.header("Search") // Header text
.placeholder("Type...") // Input placeholder
.limit(10) // Visible items
.run()
spin("Message")
.style(SpinnerStyle::Dots) // Spinner style
.color(Color::Cyan) // Spinner color
.run(|| { /* work */ })
Rune is part of the Molten Labs open source ecosystem:
| Crate | Description |
|---|---|
| molten_brand | Design tokens & colors |
| glyphs | ANSI escape sequences |
| lacquer | Terminal styling |
| cauldron | TUI framework |
| sparks | TUI components |
| rune | Shell glamour (you are here) |
| ember | Markdown renderer |
| smelt | Pretty logging |
Runes are ancient symbols of magic and power. With Rune, you inscribe beautiful, interactive spells into your shell scripts. 🪄
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Licensed under either of:
at your option.
Built with 🪄 by Molten Labs