Skip to content

iksuddle/wsh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wsh

A simple shell that speaks your language.

asciicast

Features

  • 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

Configuration

The configuration file is located at $XDG_CONFIG_HOME/wsh/config.toml. If XDG_CONFIG_HOME is not set, $HOME/.config is used instead.

Example

# ~/.config/wsh/config.toml

prompt = "> "
cohere_api_key = "your-key-here"

Usage

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.

About

A shell that speaks your language.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages