shai

shai

shai is a coding agent, your pair programming buddy that lives in the terminal. Written in rust with love <3

Stars: 344

Visit
 screenshot

shai is a coding agent written in Rust that serves as a pair programming buddy in the terminal. It can be used to run code, provide suggestions, and act as a shell assistant. Users can configure providers, run headless, create custom agents, and interact with OVHCloud endpoints for AI capabilities.

README:

SHAI

shai is a coding agent, your pair programming buddy that lives in the terminal. Written in rust with love <3

Shai CLI Screenshot

Install

install latest stable release

Install the latest release with the following command:

curl -fsSL https://raw.githubusercontent.com/ovh/shai/main/install.sh | sh

the shai binary will be installed in $HOME/.local/bin

install unstable version

Install the last unstable version with the following command:

curl -fsSL https://raw.githubusercontent.com/ovh/shai/main/install.sh | SHAI_RELEASE=unstable sh

the shai binary will be installed in $HOME/.local/bin

Configure a provider and Run!

By default shai uses OVHcloud as an anonymous user meaning you will be rate limited! If you want to sign in with your account or select another provider, run:

shai auth

shai auth

Once you have a provider set up, you can run shai:

shai

shai

Run Headless

Shai can also run in headless mode without user interface. In that case simply pipe a prompt into shai, it will stream event in the stderr:

echo "make me a hello world in main.py" | shai

shai headless

you can also instruct shai to return the entire conversation as a trace once it is done:

echo "make me a hello world in main.py" | shai 2>/dev/null --trace

shai headless

this is handy because you can chain shai calls:

echo "make me a hello world in main.py" | shai --trace | shai "now run it!"  

shai headless

Custom Agent (with MCP)

Instead of a single global configuration, you can create custom agent in a separate configuration.

example.config contains an example of a custom configuration with an stdio MCP server configured.

Place this file in ~/.config/shai/agents/example.config, you can then list the agents available with:

shai agent list

you can run shai with this specific agent with the agent subcommand:

shai example

shell assistant

shai can also act as a shell assistant in case a command failed and will propose you a fix. This works by injecting command hook while monitoring your terminal output. Your last terminal output along with the last command and error code will be sent for analysis to the llm provider. To start hooking your shell with shai simply type:

$ shai on

for instance:

Shai CLI Screenshot

To stop shai from monitoring your shell you can type:

$ shai off

Build The Project

Simply build the project with cargo

git clone [email protected]:ovh/shai.git

cd shai

cargo build --release

Compatible OVHCloud endpoints

OVHCloud provides compatible LLM endpoints for using shai with tools. Start by creating a Public Cloud project in your OVHCloud account, then head to AI Endpoints and retreive your API key. After setting it in shai, you can:

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for shai

Similar Open Source Tools

For similar tasks

For similar jobs