Skip to content

Releases: ShiyangZheng/DesktopDuck

v1.3.0 — Local LLM & Offline AI

Choose a tag to compare

@ShiyangZheng ShiyangZheng released this 03 Jun 15:52

What's New

Local LLM Support

  • Download and run Qwen 2.5-7B (or any GGUF model) entirely offline
  • Zero-Dependency Download: Pure Python stdlib + shell/curl fallback — no pip install needed
  • Smart GGUF selection: auto-picks best single-file quantization (q3_k_m > q2_k > ...)
  • Built-in health monitoring, warmup progress, and crash recovery

Code-Enforced Group Chat Routing

  • Group chat routing now deterministic (code decides who speaks to whom)
  • LLM only generates content — identical conversation flow across cloud and local models
  • User speaks → pets discuss (2-3 rounds) → wrap up to user

Improvements

  • pet-llm-server.py: Shell/Python polyglot — works with /bin/sh even without Python
  • pet-group-chat.py: Local LLM support with short prompt optimized for 7B models
  • pet-auto-reply.py: Auto-detect local vs cloud provider
  • Settings UI: New Local LLM tab with model download, server start/stop, health status

Technical

  • Supports macOS 12+ (macOS 13+ ships with built-in Python 3)
  • Bundled llama-server for Apple Silicon acceleration (Metal GPU)
  • ~3.5GB default model download (Qwen 2.5-7B GGUF q3_k_m)

v1.2 — Group Chat: Dual-Pet Autonomous Discussions

Choose a tag to compare

@ShiyangZheng ShiyangZheng released this 03 Jun 11:02

🆕 Group Chat (v1.2)

Two pets, one stage. Duck and Capybara appear simultaneously and engage in autonomous multi-turn discussions.

What's New

  • Dual-Pet Group Chat: Open from menu bar, configure both pets' personalities, start a topic
  • Autonomous Pet-to-Pet Dialogue: User speaks → pets discuss among themselves (2-3 rounds) → then respond
  • Color-Coded Bubbles: Duck (warm cream 🟡), Capybara (ice blue 🔵), User (white ⬜)
  • Hover Glow Effects: Mouse over any bubble for a subtle highlight
  • Collapsible Bubble Stacks: Auto-fold with "▼ N more..." expander
  • Rich Conversation Log: Bold speaker names, proper spacing
  • AI Session Summary: Stop the session to receive an AI-generated discussion summary
  • Round Counting: Fixed bug where Capybara would skip replying in round 2+
  • Clean Stop: All UI residues properly cleaned when ending a session

Bug Fixes

  • Capybara now always participates in round 2+ discussions
  • User input window color now distinctly white (not matching Duck's cream)
  • Stop button properly clears all bubble/fold/input windows

Files

  • duck-pet.swift — Main app (+675 lines for Group Chat)
  • pet-group-chat.py — AI orchestration engine (new)
  • README.md — Updated with Group Chat section and screenshot

Download

Grab DesktopDuck-v1.2.app.zip below, unzip, and run!

Requirements

  • macOS 12+ (native AppKit)
  • Python 3 + Pillow
  • MiniMax API key

Desktop Duck v1.1

Choose a tag to compare

@ShiyangZheng ShiyangZheng released this 03 Jun 00:47

What's New

Journal

  • Rewritten as iterative document model — sessions enrich a growing markdown document via AI summarization
  • Template selector, Refresh/+Session/Continue buttons, live markdown preview

Spritesheet Editor

  • Draggable grid lines for precise frame adjustment
  • GIF animation preview after conversion
  • Auto-trim content: frames crop to actual character bounds, no more tiny/missing pets
  • Dynamic aspect ratio selection based on grid dimensions

Pet Switching

  • Duck 🦆 / Capybara 🦫 toggle in Preferences (Appearance section)
  • Original duck-idle.gif backed up before custom apply, restored on switch

Bug Fixes

  • Uploaded spritesheet now shows in preview immediately
  • Show Grid checkbox works on first open
  • Preferences scrolls to top on open (no more scrolled-to-bottom)
  • AI Model label layout fixed (labels above inputs)
  • Slider descriptions now above sliders (Width, Height, etc.)

Python Scripts

  • pet-generate-character.py: dynamic aspect ratio, background removal, auto-trim
  • pet-convert-spritesheet.py: custom row/col splits, auto-trim
  • pet-journal-summary.py: iterative document AI summarization

Config

  • New petType field (duck/capybara/custom)
  • Save AI Config button in Preferences

Full changelog: see commits since initial release.

DesktopDuck v1.0 — Initial Release

Choose a tag to compare

@ShiyangZheng ShiyangZheng released this 02 Jun 17:53

DesktopDuck v1.0 🦆

Initial release of the AI-powered desktop pet duck for macOS.

Features

  • AI Chat — Double-click to chat via MiniMax or any OpenAI-compatible API
  • Journal System — 5 mindfulness templates with AI-generated summaries
  • AI Character Generation — Describe a character, generate a custom pet image
  • Fully Configurable — Size, bubbles, timeout, context window, window level
  • Window Levels — Always on Top / Normal / Always at Bottom
  • Bubble Stack — Floating message bubbles with auto-expiry

Requirements

  • macOS 13+ (Ventura or later)
  • Python 3.7+ with Pillow (pip3 install Pillow)
  • MiniMax API key (or any OpenAI-compatible API)

Installation

  1. Download DesktopDuck-v1.0.zip
  2. Unzip and move DesktopDuck.app to Applications
  3. Right-click → Open (first launch only)
  4. Open Preferences (⌘,) and enter your API key
  5. Double-click the duck to start chatting!

Or build from source — see README.