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👨💻.
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🗣️.
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)
GitHub Education
Google For Developers
Peerlist
Technologies used
Discussion