Inspiration Remember Clippy? That well-meaning but universally mocked paperclip from Microsoft Office that would pop up asking "It looks like you're writing a letter. Would you like help?" The original Clippy (1997-2007) became a cultural punchline because it interrupted without understanding context—offering help when you didn't need it and staying silent when you did.
We asked ourselves: What if Clippy actually knew what it was talking about?
The Kiroween "Resurrection" category challenged us to bring dead technology back to life with modern innovations. Clippy was the perfect candidate—a genuinely good idea (proactive assistance) executed with the wrong technology (rule-based heuristics). With today's LLMs, MCP, and IDE hooks, we could finally give Clippy the intelligence it always deserved.
What it does Clippy's Revenge is a desktop-native AI coding companion that floats on your screen, monitors your IDE activity through Kiro hooks, and proactively offers help when it detects issues.
Key features:
Proactive interventions — Thought bubbles appear when Clippy detects build failures, linter errors, or test failures Three personality modes — Intern (helpful), Passive-Aggressive (salty), and Doomsday (apocalyptic) Full IDE context awareness — Knows your current file, selection, cursor position, and diagnostics Background code analysis — Analyzes saved files and suggests improvements Safety controls — Requires approval before executing commands or modifying files Multi-LLM support — Works with Anthropic Claude, Google Gemini, or Ollama (local) Unlike the original Clippy, this one can actually do things—read files, write code, execute commands—all through MCP integration.
How we built it We used Kiro's spec-driven development workflow from start to finish:
Requirements (requirements.md) — 10 detailed requirements with EARS-compliant acceptance criteria covering overlay rendering, chat interface, MCP integration, personality engine, and safety controls
Design (design.md) — Complete technical architecture with TypeScript interfaces, SQLite schema, and 12 correctness properties for property-based testing
Tasks (tasks.md) — 18 implementation tasks with checkboxes, each referencing specific requirements
Tech stack:
Electron — Desktop application with transparent, always-on-top overlay React + Lottie — UI with 8 animated Clippy states WebSocket server — Receives events from Kiro hooks SQLite — Local persistence for preferences and chat history Vitest + fast-check — Property-based testing Kiro hooks were essential—we created 6 custom hooks that enable real-time IDE monitoring:
onFileSave → triggers background code analysis onTerminalOutput → detects build/test failures onDiagnostics → catches linter errors onActiveEditorChange → maintains context awareness Challenges we ran into Click-through transparency — Making Clippy float on top of everything while allowing clicks to pass through to windows below was tricky. We had to carefully manage setIgnoreMouseEvents() to enable interaction with Clippy while keeping the rest of the overlay transparent.
WebSocket reliability — The connection between Kiro hooks and the Electron app needed to handle reconnection gracefully. We implemented a ReconnectingWebSocket class with exponential backoff.
Personality consistency — Getting the LLM to maintain consistent personality across conversations required careful prompt engineering. The Passive-Aggressive mode was especially fun to tune—sarcastic but not mean.
Intervention fatigue — We had to implement cooldowns and dismissal tracking to prevent Clippy from becoming as annoying as the original. If you dismiss an intervention, it won't repeat for the same error.
Accomplishments that we're proud of The personality modes actually work — Doomsday Clippy saying "THE END IS NIGH! Your build has failed, and with it, perhaps all hope..." never gets old Genuine proactivity — Clippy detects issues before you notice them and offers contextual help Full spec-driven development — Every feature was designed before implementation, resulting in clean architecture Property-based testing — 12 correctness properties ensure the system behaves correctly across edge cases It's actually useful — Despite the nostalgia factor, this is a legitimate productivity tool What we learned Spec-driven development pays off — Writing requirements and design docs before code seems slow but prevents rework Kiro hooks are powerful — Real-time IDE integration opens up possibilities we hadn't considered Personality matters — The same information delivered differently creates completely different user experiences Safety controls are essential — Giving an AI agent the ability to modify files requires careful guardrails What's next for Clippy's Revenge Our roadmap includes:
Q1 2026 — Foundation
Cross-platform installers (Windows, macOS, Linux) Multi-IDE support (JetBrains, Neovim) Git awareness (uncommitted changes, merge conflicts) Q2 2026 — Intelligence
Project memory — remember patterns and past fixes Error pattern recognition — "You've hit this error 5 times this week..." Pre-commit analysis — review changes before you commit Q3 2026 — Collaboration
Team features — shared memory, custom personality packs Code review assistant — Clippy reviews PRs Long-term vision: An autonomous coding agent that works on fixes while you're away, understands microservice dependencies, and responds to production incidents.
The core will remain open source (MIT license), with premium cloud features for teams and enterprises.
"It looks like you're submitting a hackathon project. Would you like help winning?" — Clippy
Built With
- electron
- electron-vite
- fast-check
- http/rest
- kiro
- linux
- llm
- lottie
- macos
- mcp
- ollama
- react
- sqlite
- typescript
- vite
- vitest
- websocket
- window
Log in or sign up for Devpost to join the conversation.