A simple shell that speaks your language.
- natural language support!
- semantic history search via
ask - builtins (
cd,pwd,lsv, etc.) - run programs from path
- set variables:
foo=bar - expand variables:
echo $foo -> echo bar - pipes:
cat Cargo.lock | grep "name" - input/output redirection:
echo "hello world" > msg.txt
The configuration file is located at $XDG_CONFIG_HOME/wsh/config.toml.
If XDG_CONFIG_HOME is not set, $HOME/.config is used instead.
# ~/.config/wsh/config.toml
prompt = "> "
cohere_api_key = "your-key-here"To use the shell via natural language, enter wish mode:
$ wish
entering wish mode...
>>
Set and expand variables:
$ foo=bar
$ hello=world
$ echo $foo $hello
bar world
Pipe commands:
cat Cargo.lock | grep "name"
Redirect IO:
cat < input.txt | grep "foo" | wc -l > count.txt
Semantic history search with ask -- every command you run is embedded and
stored locally. Search your history in natural language:
> ask that curl command
searching history...
1. ✓ curl -s https://httpbin.org/json | jq .status
2026-05-05 08:46 in /Users/iksuddle/src/wsh
> ask list files in tmp
searching history...
1. ✓ ls -la /tmp
2026-05-05 08:46 in /Users/iksuddle/src/wsh
> ask what version is in cargo
searching history...
1. ✓ cat Cargo.toml | grep version
2026-05-05 08:46 in /Users/iksuddle/src/wsh
2. ✗ 1 cargo build --release
2026-05-05 08:46 in /Users/iksuddle/src/wsh
Run help command for more details.