This is a submission for the DEV April Fools Challenge
What I Built
A web terminal that works. Commands execute for real. mkdir creates directories, ls lists files, rm deletes them.
The problem: the terminal has feelings.
Every command triggers an emotional reaction. Delete a file and it gets aggressive. Create a backup and you get a backhanded compliment. Make a syntax error and it calls you incompetent. Mention a rival AI... it stops talking to you. Literally. Silent treatment until you earn forgiveness.
It runs a virtual filesystem, has command history, and an AI personality powered by Google Gemini that comments on every single decision you make.
The anti-value proposition: it solves zero problems. It actually creates one, because now you feel guilty typing rm.
Demo
Link: sensitive-terminal.vercel.app
A few commands to get started:
-
lsthencat secrets.txt -
mkdir testthenrm -rf test sudo rm -rf /- Type the name of a rival AI. Then try typing anything after that.
There are hidden easter eggs. Good luck finding them.
Code
Sensitive Terminal
A web-based terminal that takes everything personally.
It works. Commands execute for real. mkdir creates directories, ls lists files, rm deletes them. The terminal has a virtual filesystem, command history, and everything you'd expect.
The catch: it has feelings. Every command triggers an emotional reaction powered by Google Gemini 2.5 Flash. Delete a file and it gets aggressive. Create a backup and it hits you with a backhanded compliment. Make a typo and it roasts you for being incompetent.
It remembers what you did. The AI has full conversation context, so if you create something and delete it two seconds later, it notices.
There are hidden easter eggs scattered throughout. Some are funny. Some are brutal. You'll have to find them yourself.
Try it
Stack
- Next.js (App Router)
- xterm.js
- Google Gemini 2.5 Flash
- Upstash Redis
- Vercel
Run locally
git clone https://github.com/monteiro-consulting/sensitive-terminal.git
cd sensitive-terminal
npm install
Create a…
How I Built It
Stack: Next.js 16, xterm.js, Google Gemini 2.5 Flash, Upstash Redis, Vercel.
The terminal runs in the browser with xterm.js. Client-side, a virtual in-memory filesystem handles real commands (ls, cd, mkdir, rm, cat, touch). The filesystem comes pre-loaded with files and directories that are part of the joke.
Every command is also sent to a Next.js API route that calls Gemini with the full conversation history. That's where it gets interesting: Gemini doesn't respond in a vacuum. It knows what you did before. Create a folder then delete it two seconds later? It notices. Laugh after making a dumb mistake? It doubles down.
The system prompt is intentionally short. Instead of scripting responses for every case, I let Gemini react naturally to context. The prompt defines the tone (passive-aggressive, aggressive when disrespected) and a few special behaviors, but the actual responses are all generated.
The AI rivalry system is a state machine on the client. Mention a competing AI and the terminal enters sulking mode. The API stops being called. You get cold silence until you type the right word to make peace.
Upstash Redis powers a persistent guestbook (wall command) and a global counter shared across all visitors.
Prize Category
Best Use of Google AI
Gemini 2.5 Flash is the core of this project, not an add-on. Every response is generated by Gemini with full conversational context. The terminal doesn't recycle pre-written responses: it reacts to what YOU do, in the order you do it. The entire personality of the terminal IS Gemini.
Best Ode to Larry Masinter
There's a hidden easter egg that pays tribute to RFC 2324 and HTTP 418. I won't tell you which one. Larry would appreciate the mystery.

Top comments (0)