{"id":30258650,"url":"https://github.com/ovh/shai","last_synced_at":"2025-10-02T10:48:56.586Z","repository":{"id":306451928,"uuid":"1020843346","full_name":"ovh/shai","owner":"ovh","description":"shai is a coding agent, your pair programming buddy that lives in the terminal. Written in rust with love \u003c3","archived":false,"fork":false,"pushed_at":"2025-08-02T08:17:32.000Z","size":2836,"stargazers_count":101,"open_issues_count":22,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-08-02T10:40:57.282Z","etag":null,"topics":["agentic-ai","ai","cli","coding-assistant"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ovh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-16T13:31:16.000Z","updated_at":"2025-08-02T08:17:36.000Z","dependencies_parsed_at":"2025-07-25T21:56:32.545Z","dependency_job_id":null,"html_url":"https://github.com/ovh/shai","commit_stats":null,"previous_names":["ovh/shai"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ovh/shai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovh%2Fshai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovh%2Fshai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovh%2Fshai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovh%2Fshai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ovh","download_url":"https://codeload.github.com/ovh/shai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ovh%2Fshai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270602452,"owners_count":24614260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","ai","cli","coding-assistant"],"created_at":"2025-08-15T17:02:10.880Z","updated_at":"2025-10-02T10:48:56.578Z","avatar_url":"https://github.com/ovh.png","language":"Rust","funding_links":[],"categories":["Rust","🚀 AI Tools for Vim, Neovim, and Terminal","Terminal \u0026 CLI Agents"],"sub_categories":[],"readme":"# SHAI\n\nshai is a coding agent, your pair programming buddy that lives in the terminal. Written in rust with love \u003c3\n\n![Shai CLI Screenshot](./docs/assets/shai.png)\n\n## Install\n\n### install latest stable release\n\nInstall the latest release with the following command:\n\n```\ncurl -fsSL https://raw.githubusercontent.com/ovh/shai/main/install.sh | sh\n```\n\nthe `shai` binary will be installed in `$HOME/.local/bin`\n\n### install ``nightly`` version\n\nInstall the last [``unstable``](https://github.com/ovh/shai/releases/tag/unstable) version with the following command:\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/ovh/shai/main/install.sh | SHAI_RELEASE=unstable sh\n```\n\nthe `shai` binary will be installed in `$HOME/.local/bin`\n\n\n## Configure a provider and Run!\n\nBy 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:\n\n```\nshai auth\n```\n\n![shai auth](./docs/assets/auth.gif)\n\nOnce you have a provider set up, you can run shai:\n\n```\nshai\n```\n\n![shai](./docs/assets/shai-hello-world.gif)\n\n## Run Headless\n\nShai 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:\n\n```\necho \"make me a hello world in main.py\" | shai\n```\n\n![shai headless](./docs/assets/shai-headless.gif)\n\nyou can also instruct shai to return the entire conversation as a trace once it is done:\n\n```\necho \"make me a hello world in main.py\" | shai 2\u003e/dev/null --trace\n```\n\n![shai headless](./docs/assets/shai-trace.gif)\n\nthis is handy because you can chain `shai` calls:\n\n```\necho \"make me a hello world in main.py\" | shai --trace | shai \"now run it!\"  \n```\n\n![shai headless](./docs/assets/shai-chain.gif)\n\n\n## Project context file\n\nYou can create a `SHAI.md` file at the root of your project containing any information you want Shai to know about the project (architecture, build steps, important directories, etc.). Shai will automatically load this file as additional context.\n\n\n## Custom Agent (with MCP)\n\nInstead of a single global configuration, you can create custom agent in a separate configuration.\n\n`example.config` contains an example of a custom configuration with an stdio MCP server configured.\n\nPlace this file in `~/.config/shai/agents/example.config`, you can then list the agents available with:\n\n```\nshai agent list\n```\n\nyou can run shai with this specific agent with the `agent` subcommand:\n\n```\nshai example\n```\n\n## shell assistant\n\nshai 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: \n\n```\n$ shai on\n```\n\nfor instance:\n\n![Shai CLI Screenshot](./docs/assets/shai-shell.png)\n\nTo stop shai from monitoring your shell you can type:\n\n```\n$ shai off\n```\n\n## Build The Project\n\nSimply build the project with `cargo`\n\n```\ngit clone git@github.com:ovh/shai.git\n\ncd shai\n\ncargo build --release\n```\n\n## Compatible OVHCloud endpoints\n\nOVHCloud provides compatible LLM endpoints for using shai with tools. Start by creating a [_Public Cloud_ project in your OVHCloud account](https://www.ovh.com/manager/#/public-cloud), then head to _AI Endpoints_ and retreive your API key. After setting it in shai, you can:\n\n- choose [one of the models with function calling feature](https://endpoints.ai.cloud.ovh.net/catalog) (e.g., [gpt-oss-120b](https://endpoints.ai.cloud.ovh.net/models/gpt-oss-120b), [gpt-oss-20b](https://endpoints.ai.cloud.ovh.net/models/gpt-oss-20b), [Mistral-​Small-​3.2-​24B-​Instruct-​2506](https://endpoints.ai.cloud.ovh.net/models/mistral-small-3-2-24b-instruct-2506)) for best performance ;\n- choose any other model forcing structured output (`/set so` option).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovh%2Fshai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovh%2Fshai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovh%2Fshai/lists"}