A floating desktop Clippy assistant powered by OpenClaw. Retro Windows 98 aesthetic meets modern AI.
OpenClippy brings back the classic Microsoft Office Clippy assistant as a transparent, always-on-top desktop companion. It connects to any OpenAI-compatible API (OpenClaw, Ollama, OpenRouter, etc.) and streams responses in a retro Windows 98 chat window.
- 📎 Classic Clippy — Transparent frameless window with animated Clippy sprite
- 💬 Streaming Chat — Real-time token-by-token responses via SSE
- 🖥️ Windows 98 UI — Authentic retro styling via 98.css
- 🖱️ Drag & Drop — Reposition Clippy anywhere on screen
- 💡 Idle Suggestions — Clippy pops up with random tips after 60s of inactivity
- 🔧 System Tray — Show/Hide, Clear Chat, Quit from tray icon
- 🎯 Click-Through — Transparent areas pass clicks to windows behind
-
Install dependencies:
npm install
-
Copy the example config and add your API token:
cp config.example.json config.json
Edit
config.json:{ "apiUrl": "http://localhost:18789/v1/chat/completions", "token": "YOUR_API_TOKEN_HERE", "model": "anthropic/claude-opus-4-6" }Works with any OpenAI-compatible endpoint (OpenClaw, Ollama, LM Studio, OpenRouter, etc.)
-
Run:
npm start
| Action | What happens |
|---|---|
| Click Clippy | Open/close chat window |
| Drag Clippy | Reposition on screen |
| Right-click Clippy | Context menu (Clear Chat, Sound, Always on Top, Quit) |
| System tray | Show/Hide, Clear Chat, Quit |
┌─────────────────────────────────────┐
│ Electron (transparent, frameless) │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ Clippy │ │ Chat Window │ │
│ │ Sprite │ │ (98.css) │ │
│ │ (animated) │ │ │ │
│ └─────────────┘ └───────────────┘ │
└──────────────┬──────────────────────┘
▼
OpenAI-compatible API
POST /v1/chat/completions (SSE)
| Field | Description | Default |
|---|---|---|
apiUrl |
Chat completions endpoint | http://localhost:18789/v1/chat/completions |
token |
Bearer token for auth | (required) |
model |
Model identifier | anthropic/claude-opus-4-6 |
MIT
