Skip to content

v0.7.0 — Project themes + toast notifications + Claude Code hooks + Slack

Choose a tag to compare

@Adoom666 Adoom666 released this 20 May 03:28
· 770 commits to main since this release

What's new

Project-scoped themes. Theme is now keyed by PROJECT (the session's working_dir), not by tmux session. Canonical store: <working_dir>/.cc.theme — a one-line file containing the theme id. Server reads on attach, writes on theme change, atomic. Same project on two laptops → same theme. Old pinned_themes.json kept as fallback for one release with auto-migration on first attach; will be removed in v0.8.x. New endpoint PATCH /sessions/{name}/theme; old /pinned-theme route still works as a deprecated alias.

Toast notifications in-browser. Claude Code lifecycle events (Stop, PermissionRequest, Notification) now surface as toast popups in every browser attached to that session. Toasts stay open until acknowledged. Acking on one tab dismisses on every other tab attached to the same session (WS broadcast). Toast color comes from the project's theme accent so you can tell at a glance which session needs you.

Claude Code hook integration. cloudecode now writes a managed hook block into ~/.claude/settings.json on startup (marker-tagged so it won't clobber your own hooks). Each spawned session gets a per-session HMAC token (CLOUDECODE_HOOK_TOKEN) and id (CLOUDECODE_SESSION_ID) injected as env vars; hooks curl back to a new loopback-only /hooks/claude-event endpoint that validates the token and creates a toast. Opt-out: notifications.disable_claude_hooks: true in config.

Slack incoming-webhook fanout. Every Claude Code lifecycle event also POSTs to a Slack incoming webhook URL configured at notifications.slack_webhook_url. Single channel, no OAuth, fire-and-forget. Disabled silently when the URL is empty.

Install

```
shasum -a 256 "Cloude.Code-0.7.0-arm64.dmg"

expected: f328081ab8f18fa2ed7de67e9033a9f5a6de7a3633804e17eeaef81da7a5961e

```

Tests

86 new pytest cases. Full suite: 348 passed, 1 failed (pre-existing unrelated).