NAASH ( Not another AI shell )

NAASH ( Not another AI shell )

Always two commands ahead.

NAASH ( Not another AI shell )

NAASH ( Not another AI shell )

Always two commands ahead.

The problem NAASH ( Not another AI shell ) solves

Inspiration💡✨

From our experience with 🤖AI-powered shells, we found that while they mimic GUI interfaces, they often slow down workflows with cumbersome interactions📳—constantly opening, closing, and prompting for each command. We aimed to create a solution that preserves the terminal’s essential strengths—speed and power⚡—while remaining intuitive for 👤users at any level, from beginners to seasoned developers👨‍💻.

Here’s what it offers 💪🏫📋

  • Smart Clipboard Integration 🖇️: The terminal monitors clipboard content and offers contextual commands. For example, if a Git repository URL⛓️ is copied, it suggests appropriate Git commands; if a package name is detected, installation⬇️ commands are provided.
  • Natural Language 🗣️: Users can type commands in plain English, and it translates🈳 them into executable terminal commands.
  • Enhanced Autocompletion ✍️: Despite limitations in some terminal environments (e.g., PowerShell), it provides advanced auto-completion.
  • System-Aware Intelligence 🖥️: It has built-in awareness🙋‍♀️ of the user's current system and OS.
  • Better Troubleshoot 🛠️: When a command fails❌ or triggers an error, it suggests potential fixes or alternative commands🔄.
  • Model Integration 🤖: Uses both Gemini🤖 and OpenAI👾 APIs for smart command handling and suggestions.
  • Emoji Feedback 🎉: Shows emojis when command generation fails to make errors more user-friendly and noticeable🤗.
  • Command Explanation 🧾: Not only does it suggest commands, but it can also explain👨‍🏫 what each command does when you ask, so users can learn as they go🎓.

How we built it ❓🧠

We used TypeScript as our codebase. The runtime is powered by Bun for fast execution🚀, with the Gemini and OpenAI APIs integrated for natural language processing🗣️.

Challenges we ran into

Challenges We Encountered 🧗

While building the tool🛠️, we faced some challenges in implementing certain features:

  • Clipboard Functionality 📋: To ensure consistent clipboard operations across platforms, we integrated 📋clipboardy, a robust library compatible with both Windows and Linux, using Bun🌰 for streamlined cross-platform support.

  • Windows Shell Compatibility 🖥️: Transitioning from a Linux-based shell to a Windows environment presented compatibility issues. We addressed this by leveraging cross-spawn🔀 to bridge the gap between systems smoothly.

  • Native Command Emulation ⌨️: Since native shell commands couldn't be used, we implemented Node.js-based alternatives. For instance,

    process.chdir

    🗂️ was used to change directories, and a custom history mechanism was created by 💾storing user commands in a file.

  • Model Integration 🤖: We integrated two different AI👾 models to offer users a choice, allowing them to select their preferred model from the options available. We resolved connection🔌 and usage issues to seamlessly support both.

  • Balancing User Friendliness and Shell Experience ⚖️: We aimed to create a user-friendly👥 shell tool that still encourages direct CLI interaction. Balancing☯ simplicity with a genuine shell experience was challenging; we experimented👩🏻‍🔬 with various approaches to optimize user experience while maintaining an authentic terminal feel.

Tracks Applied (3)

Best use of GitHub

Issue Tracking: We created and managed issues to track bugs, tasks, and features. This ensured that everyone on the team...Read More

GitHub Education

Best Project Built Using Gemini API

users can type commands or ask questions in everyday language, and NAASH will understand and respond with helpful, accur...Read More

Google For Developers

Peerlist Project Spotlight

We’re submitting our project to Peerlist’s Project Spotlight to share what we’ve built and connect with others in the co...Read More

Peerlist

Discussion