Skip to content

Latest commit

 

History

History
 
 

windows

README.md

Coucou icon

Coucou for Windows

Mochi doesn't get a notch on a PC — so it lives at the top of your screen instead.

Approve Claude Code permissions, watch your session work, drop a file, chat with Claude, keep an eye on your services — without leaving what you're doing.

Windows 10/11 Tauri 2 Rust License: MIT

Mochi waving hello at launch


Install

The downloadable installer is temporarily unavailable. Microsoft Defender wrongly flags the unsigned installer as malware (Trojan:Win32/Wacatac.H!ml, a machine-learning false positive). A report is under review at Microsoft, and the installer will be published again once it is cleared and code-signed.

Until then, build it yourself: it takes a few minutes and installs for the current user only — no admin prompt.

Using it

The compact island, with the integration pills as mini Mochis

The overview: the focused integration on the left, the other pills on the right

A Claude Code permission request, with Deny and Allow

Chatting with Claude from the island

Mochi turned into a box, waiting for a file

What you do What happens
Move the mouse to the very top-centre of the screen Mochi peeks out
Click the small island It opens
Click Mochi It gets annoyed. Three times in a row and it goes dizzy
Rest the pointer on Mochi for two seconds Hearts
Drag a file onto the island Mochi turns into a box, swallows it, then offers to answer questions about it
Esc Closes the island
Tray icon Open, Settings…, Pause, Quit

Everything else happens on its own: a Claude Code permission request opens the island with Deny / Allow, a finished session shows what it did, and your integrations sit in the coloured pills next to Mochi.

Claude Code

The settings window

Open Settings… → Claude Code → Install hooks…. You get the exact diff of what will change in %USERPROFILE%\.claude\settings.json, the path of the dated backup that will be taken, and nothing is written until you click. Your own hooks are never touched, and uninstalling removes only Coucou's entries.

The relay is a tiny executable, coucou-hook.exe, copied to %LOCALAPPDATA%\Coucou\bin\ at launch. It is given 300 ms to reach Coucou and exits cleanly if the app is closed, slow or crashed — a Claude Code session is never blocked or slowed down by Coucou. If nobody answers a permission request in time, Coucou stays quiet and Claude Code asks in the terminal as usual.

It works from any terminal — Windows Terminal, PowerShell, VS Code, Git Bash.

Chat and keys

Settings… → Claude takes your Anthropic API key. Keys live in the Windows Credential Manager, never on disk and never in the interface — the island can only ask whether a key exists. Same for every integration key.

No telemetry. The only network requests Coucou makes are to the services you configure yourself.

Build it yourself

You need Rust, Node 20+, and the MSVC build tools (Visual Studio Build Tools with "Desktop development with C++"). WebView2 ships with Windows 10/11.

cd windows
npm install
npm run tauri dev      # live-reloading development build
npm run pack           # builds the installer and drops it in windows/release/

npm run dev alone serves the front end in an ordinary browser, which is enough to work on the island's looks. It also serves dev/upload-preview.html, which replays the whole file-drop choreography on a loop — the one part of the UI that otherwise needs a real drag from Explorer to see. Neither page ships in the app.

npm run pack leaves two files in windows/release/, the same names the release workflow publishes:

Coucou-Windows-X.Y.Z-setup.exe    the versioned installer
Coucou-Windows-setup.exe          the same file under the rolling name

Installing is optional — target/release/coucou.exe runs on its own. There is no window in the taskbar and no console: the island at the top of the screen and the Mochi in the notification area are the whole app, and Quit lives in its menu.

The 28 sounds are the macOS app's own files; they are never duplicated in this folder. The path is declared once, in SOUNDS_DIR at the top of vite.config.ts — when they move to shared/sounds/, change that one line.

The app icon and the tray icon are drawn in code, like Mochi itself:

npm run icons          # regenerates src-tauri/icons from scripts/gen-icons.mjs

Layout

windows/
  src/                 island front end (TypeScript, no framework)
    mochi/             Mochi and the launch greeting, in Canvas 2D
    island/            state machine, hooks, integrations
    views/             every island view
    settings/          the settings window
  src-tauri/           Rust backend: window, named pipe, Claude API, pollers
  hook/                coucou-hook.exe, the Claude Code relay
  scripts/             icon generator

Log

%LOCALAPPDATA%\Coucou\coucou.log — hook events, permission decisions, poller problems. It stays on your machine.

What's different from the Mac version

  • No notch, so the island lives at the top centre of the screen and retracts into the top edge instead of hiding in a notch.
  • Permission approval works from any terminal; the Mac build only listens to VS Code sessions.
  • Not in this version: sending a file by email, dragging Mochi onto a window to attach it as context, and jumping to a specific terminal window — "Open terminal" opens the working folder in VS Code when code is on your PATH.
  • Cal.com shows the next bookings as a list rather than the Mac's calendar.