{"id":37096922,"url":"https://github.com/ruandada/aish","last_synced_at":"2026-01-14T11:55:30.040Z","repository":{"id":306862878,"uuid":"1016648559","full_name":"ruandada/aish","owner":"ruandada","description":"AISH - An Intelligent Shell with AI-Powered Assistance","archived":false,"fork":false,"pushed_at":"2025-07-28T03:52:12.000Z","size":1889,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-28T05:29:00.752Z","etag":null,"topics":["ai","intelligence","shell"],"latest_commit_sha":null,"homepage":"https://github.com/ruandada/aish","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruandada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T10:15:27.000Z","updated_at":"2025-07-28T03:51:15.000Z","dependencies_parsed_at":"2025-07-28T05:42:33.927Z","dependency_job_id":null,"html_url":"https://github.com/ruandada/aish","commit_stats":null,"previous_names":["ruandada/aish"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ruandada/aish","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruandada%2Faish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruandada%2Faish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruandada%2Faish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruandada%2Faish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruandada","download_url":"https://codeload.github.com/ruandada/aish/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruandada%2Faish/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28419272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai","intelligence","shell"],"created_at":"2026-01-14T11:55:29.326Z","updated_at":"2026-01-14T11:55:30.033Z","avatar_url":"https://github.com/ruandada.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshot.png\" alt=\"AISH Screenshot\" width=\"600\"\u003e\n  \n  \u003ch1 align=\"center\"\u003eAISH\u003c/h1\u003e\n  \n  \u003cp align=\"center\"\u003e\n    \u003cstrong\u003eAn Intelligent Shell with AI-Powered Assistance\u003c/strong\u003e\n  \u003c/p\u003e\n  \n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/ruandada/aish\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/GitHub-View%20on%20GitHub-blue?logo=github\" alt=\"GitHub\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\" alt=\"License\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://golang.org\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Go-1.23+-blue?logo=go\" alt=\"Go Version\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n## 🚀 Overview\n\nAISH is an intelligent shell that seamlessly combines traditional UNIX shell functionality with AI-powered assistance. It provides an enhanced command-line experience where you can use natural language to interact with your system while maintaining full compatibility with standard shell operations.\n\n## ✨ Key Features\n\n- **🤖 Natural Language Commands** - Execute system operations using plain English\n- **💻 Full Shell Compatibility** - Complete POSIX shell support with readline and autocompletion\n- **⚙️ Flexible AI Configuration** - Customize OpenAI API settings, models, and system prompts\n- **🔧 Custom Tool Integration** - Extend functionality with your own local executables\n- **🎨 Beautiful Interface** - Enjoy colorful, informative prompts with system information\n- **📁 Workspace Support** - Project-specific configurations via `.aishrc` files\n\n## 📦 Installation\n\n### Prerequisites\n\n- **OpenAI API key**\n- **Go** 1.23.0 or later (if build from source)\n\n### Option 1: Build and Install from Source (Recommended)\n\n```bash\ngo install github.com/ruandada/aish/cmd/aish@latest\n```\n\n### Option 2: Donwload prebuild binaries\n\nSee [releases](https://github.com/ruandada/aish/releases)\n\n## ⚙️ Configuration\n\nBefore using AISH, configure your OpenAI API settings:\n\n```bash\n# Create or edit your configuration file\nvim ~/.aishrc\n```\n\nAdd your OpenAI configuration:\n\n```bash\n# Set your OpenAI API key\naiset openai.api_key \"\u003cyour-api-key\u003e\"\n\n# Optionally customize the model (default: gpt-4o-mini)\naiset openai.model \"gpt-4o-mini\"\n\n# Set custom base URL for alternative providers\naiset openai.base_url \"https://api.openai.com/v1\"\n```\n\n## 🎯 Quick Start\n\n### Launch AISH\n\n```bash\n# Interactive mode\naish\n\n# Single command execution\naish -c \"what day is today?\"\n\n# Execute from script file\naish ./story.sh\n```\n\n### Basic Usage Examples\n\n```bash\n# Execute native shell commands directly\nuname -a\n# \u003e Darwin macbook.local 24.0.0 Darwin Kernel Version 24.0.0: Tue Sep 24 23:39:07 PDT 2024; root:xnu-11215.1.12~1/RELEASE_ARM64_T6000 arm64\n\n# Use natural language for AI interaction\ntell me a joke\n# \u003e Why do programmers prefer dark mode?\n# \u003e Because light attracts bugs!\n\n# Use quotes for explicit AI mode (useful when command conflicts with built-ins)\n\"what day is today\"\n# \u003e Today is Sunday, July 27, 2025.\n\n# Or use the \"ai:\" prefix for explicit AI commands\nai: what is the time\n# \u003e The current time is Sun Jul 27 10:24:29 CST 2025.\n```\n\n## 🔧 Advanced Usage\n\n### Complex Command Patterns\n\n```bash\n# Subcommands with shell expansion\nget my ip addr: $(ifconfig)\ngenerate a report: $(df -h)\n\n# Multi-step operations\ncreate a new react project here \u0026\u0026 launch that project\n\n# Piping with AI commands\n\"count from 1 to 100\" | grep 0\n\n# Output redirection\n\"generate a poem about computers\" \u003e ./poem.txt\n```\n\n### AI-Powered Shell Scripts\n\nAISH supports full shell script syntax, allowing you to create scripts using natural language. Here's an example of a story generator script:\n\n```bash\n#!/usr/bin/env aish\n\n# Color definitions\nCYAN='\\033[0;36m'\nNC='\\033[0m' # No Color\n\nprint_banner() {\n  echo -e \"${CYAN}\"\n  echo \"╔══════════════════════════════════════════════════════════════╗\"\n  echo \"║                 🎭 Epic Story Generator 🎭                   ║\"\n  echo \"║                  AI-Powered AISH Script                      ║\"\n  echo \"╚══════════════════════════════════════════════════════════════╝\"\n  echo -e \"${NC}\"\n}\n\ngenerate_story() {\n  \"tell me a random story\"\n}\n\nprint_banner\ngenerate_story\n```\n\nMake it executable and run:\n\n```bash\nchmod +x ./random_story.sh\n./random_story.sh\n```\n\n![Random Story Example](docs/random_story.png)\n\n## 🏗️ Workspace Configuration\n\nAISH automatically reads `.aishrc` files in the current directory, enabling project-specific configurations:\n\n- Define custom AI tools\n- Set project-specific system prompts\n- Configure specialized LLM models\n\n### Example Configurations\n\nExplore our examples for advanced usage:\n\n- **[Emoji Agent](docs/examples/emoji/README.md)** - Customize AI prompts to create specialized agents\n- **[Custom Tools](docs/examples/tools/README.md)** - Expose local executables as AI tools\n\n## 🎛️ Shell Modes\n\nAISH operates in three distinct modes:\n\n### Auto Mode (Default)\n\nAutomatically detects whether input is a shell command or AI conversation.\n\n### AI Mode\n\nAll input is processed by the AI assistant.\n\n```bash\n# Force AI mode for single command\nai: write an essay about GitHub\n\n# Switch to AI mode\nai:\n\n# Direct AI interaction\nwrite an essay about GitHub\n```\n\n### User Mode\n\nAll input is processed by the traditional shell interpreter (no AI).\n\n```bash\n# Force user mode for single command\nuser: ifconfig\n# Shortcut\n:: ifconfig\n\n# Switch to user mode\n::\n\n# Direct shell execution\nifconfig\n```\n\n## 🛠️ Built-in Commands\n\n### Configuration Management\n\n| Command               | Description                      |\n| --------------------- | -------------------------------- |\n| `aiset \u003ckey\u003e \u003cvalue\u003e` | Set configuration values         |\n| `aiget \u003ckey\u003e`         | Get specific configuration value |\n| `aiget`               | Display all configuration values |\n\n### System Prompt Management\n\n| Command             | Description                     |\n| ------------------- | ------------------------------- |\n| `aiprompt \u003cprompt\u003e` | Append custom system prompts    |\n| `aiprompt reset`    | Reset to default system prompts |\n| `aiprompt`          | View current system prompt      |\n\n### Mode Control\n\n| Command                             | Description                           |\n| ----------------------------------- | ------------------------------------- |\n| `auto:`                             | Switch to auto mode                   |\n| `ai:`                               | Switch to AI mode                     |\n| `user:` or `::`                     | Switch to user mode                   |\n| `auto: \u003ccommand\u003e`                   | Execute in auto mode (mode unchanged) |\n| `ai: \u003ccommand\u003e`                     | Execute in AI mode (mode unchanged)   |\n| `user: \u003ccommand\u003e` or `:: \u003ccommand\u003e` | Execute in user mode (mode unchanged) |\n\n## 🧪 Development\n\n### Building\n\n```bash\n# Build the application\nmake\n\n# Test local development\ngo run ./cmd/aish\n```\n\n### Project Structure\n\n```\naish/\n├── cmd/aish/          # Main application entry point\n├── internal/          # Core implementation\n│   ├── base/         # Base shell functionality\n│   └── plugins/      # AI and extension plugins\n├── docs/             # Documentation and examples\n└── Makefile          # Build configuration\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- **Shell Engine**: Built with [mvdan.cc/sh](https://github.com/mvdan/sh) for POSIX compatibility\n- **AI Integration**: Powered by OpenAI's GPT models\n- **Inspiration**: Modern shell experiences and AI-assisted development tools\n\n## ☕️ Buy Me a Coffee\n\nIf you find AISH helpful and would like to support its development, consider buying me a coffee! Your support helps keep this project alive and enables me to continue improving it.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"docs/donate-alipay.png\" alt=\"Alipay QR Code\" width=\"200\"\u003e\n        \u003cp\u003e\u003cstrong\u003eAlipay\u003c/strong\u003e\u003c/p\u003e\n      \u003c/td\u003e\n      \u003ctd align=\"center\" style=\"padding-left: 20px;\"\u003e\n        \u003cimg src=\"docs/donate-wechat.png\" alt=\"WeChat QR Code\" width=\"200\"\u003e\n        \u003cp\u003e\u003cstrong\u003eWeChat\u003c/strong\u003e\u003c/p\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n  \u003cp\u003e\u003cstrong\u003eScan to donate\u003c/strong\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eMade with ❤️ by \u003ca href=\"https://github.com/ruandada\"\u003e@ruandada\u003c/a\u003e\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/ruandada/aish/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/ruandada/aish/issues\"\u003eRequest Feature\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/ruandada/aish\"\u003eView on GitHub\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruandada%2Faish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruandada%2Faish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruandada%2Faish/lists"}