{"id":28532675,"url":"https://github.com/zwldarren/shellchat","last_synced_at":"2026-05-19T06:01:56.449Z","repository":{"id":297764860,"uuid":"995308398","full_name":"zwldarren/shellchat","owner":"zwldarren","description":"AI-powered CLI tool and MCP client","archived":false,"fork":false,"pushed_at":"2025-06-22T02:37:14.000Z","size":129,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-07T16:32:40.742Z","etag":null,"topics":["ai","cli","linux","mcp-client","openai","rust","shell"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zwldarren.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-03T09:32:24.000Z","updated_at":"2025-06-28T10:19:52.000Z","dependencies_parsed_at":"2025-06-15T10:29:10.961Z","dependency_job_id":null,"html_url":"https://github.com/zwldarren/shellchat","commit_stats":null,"previous_names":["zwldarren/shellchat"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zwldarren/shellchat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwldarren%2Fshellchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwldarren%2Fshellchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwldarren%2Fshellchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwldarren%2Fshellchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zwldarren","download_url":"https://codeload.github.com/zwldarren/shellchat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwldarren%2Fshellchat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266231762,"owners_count":23896473,"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","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":["ai","cli","linux","mcp-client","openai","rust","shell"],"created_at":"2025-06-09T16:10:05.959Z","updated_at":"2026-05-19T06:01:56.181Z","avatar_url":"https://github.com/zwldarren.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShellChat\n\nShellChat is a Rust CLI tool that brings AI to your terminal, enabling natural language command generation and interactive chat with various LLM providers. It supports MCP Servers and multiple AI providers: OpenAI, DeepSeek, Anthropic, Gemini and OpenRouter. Inspired by [ShellGPT](https://github.com/TheR1D/shell_gpt), it's both a practical tool and a Rust learning project.\n\n\n## Example Usage\n\nChat with AI in the terminal:\n\n```bash\nschat \"What is the capital of France?\"\n```\n\nConvert natural language to shell commands:\n\n```bash\nschat -s \"List all files in the current directory\"\n```\n\nContinuous chat mode:\n```bash\nschat --chat\n```\nEnter an interactive chat session where you can converse with the AI model continuously. This mode supports:\n\n*   **Interactive Conversation**: Engage in multi-turn dialogues with the AI.\n*   **Slash Commands**: Use special commands to manage your chat session:\n    *   `/help`: Display a list of all available commands.\n    *   `/clear`: Clear the current conversation history.\n    *   `/model \u003cname\u003e`: Show or change the active LLM model.\n    *   `/save \u003cfilename\u003e`: Save the current conversation history to a file.\n    *   `/load \u003cfilename\u003e`: Load a conversation history from a file.\n    *   `/list`: List all saved conversation history files.\n    *   `/delete \u003cfilename\u003e`: Delete a specific conversation history file.\n    *   `/display \u003cmode\u003e`: Control the visibility of tool interactions (modes: `verbose`, `minimal`, `hidden`, `help`).\n*   **Tool Calling with MCP Servers**: When configured, the AI can automatically use tools provided by [MCP Servers](#MCP-Servers-Configuration) to perform actions like searching the web or accessing external APIs.\n\nGenerate a commit message for git changes:\n```bash\ngit diff | schat \"Generate a commit message for the changes\"\n```\n\nSummary a text file:\n```bash\nschat \"Summarize the content of this file\" \u003c file.txt\n```\n\n## Installation\n\n### Quick Install from GitHub Releases\n\nLinux Installation:\n```bash\n# One-line install using curl\ncurl -sSL https://raw.githubusercontent.com/zwldarren/shellchat/main/scripts/install.sh | bash -s -- install\n\n# Uninstall\ncurl -sSL https://raw.githubusercontent.com/zwldarren/shellchat/main/scripts/install.sh | bash -s -- uninstall\n```\n\nWindows Installation:\n```powershell\n# One-line install using irm\nirm https://raw.githubusercontent.com/zwldarren/shellchat/main/scripts/install.ps1 -OutFile $env:TEMP\\install.ps1; \u0026 $env:TEMP\\install.ps1 install\n\n# Uninstall\nirm https://raw.githubusercontent.com/zwldarren/shellchat/main/scripts/install.ps1 -OutFile $env:TEMP\\install.ps1; \u0026 $env:TEMP\\install.ps1 uninstall\n```\n## Configuration\n\nThe configuration file is located at `~/.schat/config.yaml`.\n\n## Configuration Options\n\n### Global Settings\n```yaml\n# Currently active LLM provider (must match a provider key below)\nactive_provider: openai\n\n# Whether to auto-confirm shell command execution (true/false)\nauto_confirm: false\n```\n\n### LLM Providers Configuration\nConfigure one or more LLM providers. All providers support these common parameters:\n- `api_key`: Your API key for the provider\n- `base_url`: API endpoint URL\n- `model`: Model name to use\n\n```yaml\nproviders:\n  # OpenAI compatible API\n  openai:\n    api_key: your_openai_api_key_here\n    base_url: https://api.openai.com/v1\n    model: gpt-4.1-mini  # Example: gpt-4, gpt-3.5-turbo\n  \n  # OpenRouter API (supports multiple providers)\n  openrouter:\n    api_key: your_openrouter_api_key_here\n    model: google/gemini-2.0-flash-001\n  \n  # DeepSeek API\n  deepseek:\n    api_key: your_deepseek_api_key_here\n    model: deepseek-chat\n  \n  # Google Gemini API\n  gemini:\n    api_key: your_gemini_api_key_here\n    model: gemini-2.0-flash\n  \n  # Anthropic Claude API\n  anthropic:\n    api_key: your_anthropic_api_key_here\n    model: claude-sonnet-4-20250514\n```\n\n### MCP Servers Configuration\nModel Context Protocol (MCP) servers extend functionality with additional tools.\n\n```yaml\nmcp_servers:\n  # Local stdio-based server\n  - name: everything\n    enabled: false  # Set to true to enable\n    type: stdio     # Local process\n    command: npx    # Command to run\n    args: \n      - \"-y\"\n      - \"@modelcontextprotocol/server-everything\"\n  \n  # Brave Search API server\n  - name: brave-search\n    type: stdio\n    command: npx\n    args: [\"-y\", \"@modelcontextprotocol/server-brave-search\"]\n    envs:\n      BRAVE_API_KEY: your_brave_api_key_here  # Required API key\n  \n  # HTTP-based server\n  - name: StreamableHttp-server\n    type: streamable-http\n    url: https://mcp.example.com/mcp\n  \n  # SSE-based server\n  - name: sse-server\n    type: sse\n    url: https://mcp.example.com/sse\n```\n\n### Supported Providers\nGet API keys from these providers:\n- [OpenAI](https://platform.openai.com/docs/overview)\n- [DeepSeek](https://platform.deepseek.com/api_keys)\n- [Anthropic](https://console.anthropic.com/settings/keys)\n- [Gemini](https://aistudio.google.com/apikey)\n- [OpenRouter](https://openrouter.ai/settings/keys)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwldarren%2Fshellchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzwldarren%2Fshellchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwldarren%2Fshellchat/lists"}