Inspiration
I spent hours brainstorming with a friend about making a LAM (LLM-Assisted Middleware) framework, where LLMs actively perform tasks instead of just being passive chatbots. We were amazed by Rabbit OS and wanted to create something similar. As someone who uses the terminal frequently, I would still find myself unable to unlock its full potential because there are just so many commands. TerminAI was born out of the frustration of constantly looking up these on google and chatgpt. We wanted to make basically an integrated chatgpt with the terminal itself!
What it does
TerminAI allows users to execute commands using plain language, deciding whether to run a traditional shell command or interpret the input with AI. It bridges the gap between a CLI and AI assistantance. The system integrates Gemini AI for natural language processing and stores interactions in Supabase for a more personalised experience.
How we built it
Tech Stack: Python, Supabase, Gemini AI Core Idea: Multi-model execution that allows AI-enhanced command execution while still preserving raw shell command functionality UI/UX Hurdles: Replicating the look and feel of a terminal was much harder than expected. I initially aimed for a standalone application, but the complexity of dependencies made it impractical, so it currently runs as a Python script.
Challenges we ran into
- Handling execution duality efficiently without adding too much latency
- "cd" and "git" commands required special treatment since they affect the session state
- Replicating the terminal UI while maintaining an AI-driven experience was way harder than expected
- Packaging everything into a standalone app proved challenging due to dependency management Additionally I realised that I could've decreased the processing time by a huge margin had I implemented threading and parallel executions.
So, porting the code to then do that was another nightmare.
Accomplishments that we're proud of
Basically, the entire idea of actually completing this project! Cause it was a lot of work designing the architecture and figuring out the right way to parse data, it was too much but fun.
What we learned
- AI-powered command execution needs strict security measures to prevent unintended system modifications. This I achieved by having a sanitizer model that only allows non-harmful system commands to be executed by the LLM
- Managing dependencies for a standalone app is an entirely different beast that requires deeper OS-level packaging knowledge
What's next for TerminAI
- Expanding AI models for better command understanding
- Revisiting the idea of a standalone application with a more lightweight dependency structure
- Adding user customization options, like preferred shell environments or command behaviors
Log in or sign up for Devpost to join the conversation.