DEV Community

Cover image for ShowDEV: I built an AI-native shell in Rust because I was tired of Googling CLI errors
Hayato Tominaga
Hayato Tominaga

Posted on

ShowDEV: I built an AI-native shell in Rust because I was tired of Googling CLI errors

Ever heard of J.A.R.V.I.S. from Marvel's Iron Man? He is the highly intelligent, polite AI assistant that supports Tony Stark. I've always dreamed of building my very own J.A.R.V.I.S. to help me with my daily development.

But in reality, our daily workflow looks nothing like that. Have you ever run a command, gotten an obscure error, and had to copy-paste the output into a browser or ChatGPT just to figure out what went wrong?

As developers, we do this multiple times a day. It completely breaks our flow state. I wanted to stop doing this. I wanted a true "J.A.R.V.I.S."-like experienceβ€”an assistant that lives inside my shell, already knows what just happened, and can help me instantly.

So, I built Jarvish.

GitHub logo tominaga-h / jarvis-shell

Next Generation AI Integrated Shell inspired by J.A.R.V.I.S. on marvel

Jarvish Logo

🀡 Jarvis Shell (jarvish)

status version

🌐 ζ—₯本θͺžη‰ˆ README はこけら


πŸ’‘ About

"I want J.A.R.V.I.S. as my companion β€” but inside my terminal."

Jarvish is a Next Generation AI Integrated Shell written in Rust, inspired by J.A.R.V.I.S. from Marvel's Iron Man. It natively embeds AI intelligence into your everyday shell experience β€” no more copy-pasting errors into a browser. Just ask Jarvis.

jarvish


✨ Features

🧠 AI-Powered Assistance

  • πŸ’¬ Talk to Jarvis in natural language β€” right from your shell prompt
  • πŸ” When a command fails, Jarvis automatically investigates the error using stdout/stderr context
  • πŸ› οΈ Jarvis can read and write files, execute commands as an AI agent with tool-calling capabilities

🐟 Fish-like UX

  • 🎨 Real-time syntax highlighting as you type
  • ⚑ Auto-completion for commands (PATH binaries, builtins) and file paths
  • πŸ“œ History-based suggestions powered by reedline

πŸ“¦ The Black Box

  • πŸ—ƒοΈ Every command execution is persisted β€” command, timestamp, working directory, exit…

I feel so great to switch seamlessly between just command and natural language. I want to feel that to you.

✨ See it in action

πŸ› οΈ Why not just an AI CLI tool?

There are already great tools like GitHub Copilot CLI, but they are separate from your shell environment. You have to explicitly call them, and they don't know the context of the command you just ran.

Jarvish is different. It's a fully functional interactive shell.

  • No mode switching: If you type ls -la, it runs the command. If you type Jarvis, why did my last build fail?, a built-in heuristic classifier routes it to the AI.
  • The "Black Box" Context: This is the magic. Jarvish silently captures all your stdout/stderr in the background, compresses it, and saves it to a local SQLite database. When you talk to the AI, it automatically retrieves your recent I/O history as context.

πŸ¦€ Built with Rust

As a Rustacean, building a shell from scratch was an amazing journey. Here is a sneak peek under the hood:

  • reedline: Provides the rich, Fish-like REPL experience (syntax highlighting, autosuggestions).
  • os_pipe: Used to tee the output of child processes. It captures the output to memory for the AI, while simultaneously rendering it to the terminal without breaking interactive tools.
  • async-openai: Powers the agent loop. Jarvish doesn't just chat; it uses function calling to autonomously read files, execute commands, and investigate issues.

πŸš€ Try it out!

Jarvish is currently at v1.0.1 and I use it as my daily driver. It's open-source and I would absolutely love for you to try it!



cargo install jarvish
Enter fullscreen mode Exit fullscreen mode

Top comments (0)