super magical awesome shell
Do not use this as your default shell (/bin/sh) because it is not POSIX compliant. Like fish, it is designed to be a user-friendly interactive shell. It is not designed to be a system shell that runs scripts.
Environment variables are loaded from your system default shell.
smash uses ANSI escape codes to format the prompt. If you are using a terminal that does not support ANSI escape codes, you will not be able to use smash.
There are some bugs on Windows because I don't use Windows. Feel free to open PRs to fix them.
- Substitute environment variables and ~
- Tab completion
- Configurable and interactive prompt
- Command history
- Command aliases
- Context prompt (e.g. git branch)
- Context aware completions
calc
(simple calculator)cd
(change directory)echo
(print arguments to stdout)exit
(exit shell session)printf
(print formatted string to stdout)time
(time command execution)zu
(change directory based on history and frequency, similar to ajeetdsouza/zoxide)smashfetch
(show system information, similar to dylanaraps/neofetch)
- More configuration options
- More builtins
~/.config/smash/config.toml
ps1
: Prompt shown on user inputps2
: Prompt shown on the executed commandsalias
: Map of command aliases where keys can be a string or list of stringscolor
: Map of colors supporting all charmbracelet/lipgloss colorscompletion_text
: text color of completion listcompletion_selected_bg
: background color of selected completion entry
on_start
: List of commands to run on shell startenv
: Map of environment variables
brew install tsukinoko-kun/tap/smash
go install github.com/tsukinoko-kun/smash@latest