Skip to main content

OpenCat — a cute floating desktop cat companion for OpenClaw AI

Project description

中文 | English

OpenCat — Desktop Client for OpenClaw

A cute desktop skin for OpenClaw — same commands, same AI, just cuter.
pip install, run opencat, done. Everything you do in OpenClaw works here.

Idle (random rotation) Thinking Done Sleeping

yarn ball

scratching

rolling

running

eating

pooping

sleeping

Why OpenCat?

If you're running OpenClaw as your AI gateway, you might find:

  • The official web panel is too cluttered — you just want a quick, clean chat window
  • Telegram / WhatsApp bots need a VPN if you're in mainland China
  • You want something that feels alive — not another chat tab buried in your browser

OpenCat puts a pixel-art cat on your desktop. Click it, and a warm-toned chat window pops up. That's it. No browser, no VPN, no noise.

Screenshots

Chat + Cat History Sidebar
Click the cat to open the chat window. Warm pastel UI with streaming AI replies. Conversation history with color-coded bookmarks. Switch or delete sessions anytime.

Toolbar: A-/A+ adjust font size  |  cube toggles 3D cat  |  + new chat  |  book icon opens history

Features

  • Floating cat widget — always on top, draggable, with animated states (idle, thinking, talking, sleeping...)
  • Warm pastel chat UI — clean, minimal, purpose-built for quick conversations
  • Streaming responses — see the AI reply in real-time, token by token
  • Conversation history — sessions are saved locally and browsable from the sidebar
  • Image attachments — paste or drag images into the chat (clipboard + file picker)
  • Cross-platform — Windows, macOS, Linux (native transparency on Windows, graceful fallback elsewhere)
  • Remote connection — connect to an OpenClaw gateway on another machine via Tailscale or any network
  • Lightweight — pure Python, ~100 KB installed, no web runtime

Chat Commands

OpenCat supports OpenClaw native commands — type them directly in the chat input:

Command Description
/status View current session status and token usage
/new Start a new conversation (resets server session)
/compact Compress context to save tokens
/think <level> Set thinking depth
/stop Abort the current response
/clear Clear local chat display (does not reset server session)
/help Show all available commands

Quick Start

Prerequisites

You need a running OpenClaw gateway. OpenCat connects to it via WebSocket.

Install

pip install git+https://github.com/Jacobzwj/opencat.git

Run

opencat

OpenCat reads your gateway config from ~/.openclaw/openclaw.json automatically.

CLI Options

opencat --host 100.64.0.3    # Connect to a remote OpenClaw (e.g. via Tailscale)
opencat --port 18789          # Override gateway port
opencat --token your-token    # Override gateway token
opencat --debug               # Enable debug logging

Development

git clone https://github.com/Jacobzwj/opencat.git
cd opencat
pip install -e .
opencat

How It Works

┌──────────┐   WebSocket    ┌──────────────┐
│  OpenCat  │ ◄───────────► │  OpenClaw    │ ───► LLM API
│ (desktop) │   streaming   │  (gateway)   │
└──────────┘                └──────────────┘

OpenCat is a pure client — it connects to your self-hosted OpenClaw gateway over WebSocket, sends messages, and streams back responses. All AI logic, model selection, and API keys stay on the gateway side.

Customizing the Cat

Cat animations live in opencat/ui/assets/ and are mapped via manifest.json. Replace them with your own pixel art:

State What happens Default GIF
Idle Connected, waiting for user. Randomly rotates through a pool. idle.gif, error.gif, connecting.gif, talking.gif
Thinking User sent a message, waiting for AI + streaming reply thinking.gif (eating)
Done Response complete, stays until next message done.gif (pooping)
Sleeping Not connected to OpenClaw sleeping.gif (sleeping in box)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opencat-0.1.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opencat-0.1.0-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file opencat-0.1.0.tar.gz.

File metadata

  • Download URL: opencat-0.1.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for opencat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bb4e499a51a33436998e465c18b0bf5c08c86aada7e0f9b449e750df3d9b471c
MD5 0b39be0621781c02b1cec52b6d8546fd
BLAKE2b-256 2e91cd4f6099a645f6db3cee78856c48444894d455ef9e43bbe60e2761af13c8

See more details on using hashes here.

File details

Details for the file opencat-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: opencat-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for opencat-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4f0db3cc5efad06d1f75525835800221c168e3a1e6045c19098d2b5aa1aefae
MD5 0348a9206470a50d6ebd5f90e5e8d760
BLAKE2b-256 da782f67a7c3b7747e9e934992ea869dbf5ad0e0c9eee4a3de75350b3ec8c5f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page