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 opencat

Run

opencat

If opencat is not recognized, use:

python -m 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.9.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.9-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: opencat-0.1.9.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.9.tar.gz
Algorithm Hash digest
SHA256 74391341d12b8aa31713c87fa08e75337aeed63541d10abc815010af0c666e2d
MD5 de60ca18ced37cb2945a72e34de2dc57
BLAKE2b-256 d4af71711568ee3ebc5f33b20f277efe8f8ba710cea81248419826090eac2b14

See more details on using hashes here.

File details

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

File metadata

  • Download URL: opencat-0.1.9-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.9-py3-none-any.whl
Algorithm Hash digest
SHA256 75e546dec2ec12e3e2b5609d58d5135a5fbb3a53b22f11ff69195a8c13b25261
MD5 a8224408b03b0d97d3c0936d495bbc60
BLAKE2b-256 f52401ec348ae29c9908bb9c11ec447c25cdfcb8e4124aa0f611dda5a5c8b3f7

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