Skip to main content

chibi-mcp (server)

MCP server for chibi — a local desktop character that visualizes Claude Code or Codex session state.

Code is MIT; bundled official artwork has separate terms (see OFFICIAL_ASSET_TERMS.md). chibi and chibi-mcp are unregistered trademarks of the project.

The server has two jobs running together in one process:

  1. MCP server (stdio) — Claude Code / Codex calls these tools to interact with chibi.
  2. WebSocket server (ws://127.0.0.1:9876) — pushes state snapshots and events to the desktop app.

Install from GitHub

pipx install "git+https://github.com/soccz/chibi-mcp.git#subdirectory=server"

Upgrade or refresh an existing install:

pipx uninstall chibi-mcp || true
pipx install "git+https://github.com/soccz/chibi-mcp.git#subdirectory=server"

(For local development from this repo, see "Develop" below.)

Register with Claude Code or Codex

claude mcp add chibi -- chibi-mcp
codex mcp add chibi -- chibi-mcp

Then call open_pet_window from the client — it launches the floating chibi window and connects to the local WebSocket.

CLI checks

chibi-mcp --check      # verify packaged assets + local runtime support
chibi-mcp --doctor     # verify local runtime + Claude/Codex/VS Code client state
chibi-mcp --open       # open the window and auto-start ws-only if needed
chibi-mcp --version
chibi-mcp --ws-only    # development: run only ws://127.0.0.1:9876
chibi-audit            # local trust report for team/security review
chibi-pack init ./my-pack
chibi-pack validate ./my-pack
chibi-pack preview ./my-pack
chibi-share --out share-card.png
chibi-share --preset social-preview --out social-preview.png
chibi-share --preset lineup --out starter-lineup.png
chibi-share --preset options --out option-showcase.png

In --doctor, ok: true means the local server/runtime is healthy, while ready: true means the checked Claude, Codex, and VS Code paths are also ready.

MCP tools

Tool Description
get_pet_state Returns mood, system metrics (CPU/RAM/battery), counters, timing. Counts as a Claude interaction (may trigger a milestone event every N calls).
pet_say(text) Make chibi say something in a speech bubble.
slice_now Force a milestone animation immediately.
set_slice_interval(n) Change how often (every N Claude tool calls) the milestone animation fires. Default: 10.
get_options List free visual option layers such as honey, beads, sprinkles, powder, sesame, petals, resin, and sauce.
set_active_options([ids]) / clear_active_options Apply or clear up to 3 free option layers.

WebSocket protocol (server → desktop)

JSON messages broadcast to all connected desktop clients:

{ "type": "state",
  "payload": {
    "mood": "calm | panting | drowsy | lonely | happy | surprised | joyful",
    "system": { "cpu_percent": 12.3, "ram_percent": 51.2, "battery_percent": 84.0, "battery_plugged": false },
    "counters": { "calls_total": 23, "calls_since_slice": 3, "slice_interval": 10, "slices_today": 2 },
    "timing": { "session_seconds": 1842, "idle_seconds": 7 }
  }
}

{ "type": "say", "text": "오늘도 같이 코딩!" }

{ "type": "slice" }

State is pushed every 2 seconds. say and milestone events are pushed on demand.

Environment variables

Var Default Purpose
CHIBI_WS_HOST 127.0.0.1 WebSocket bind host
CHIBI_WS_PORT 9876 WebSocket bind port
CHIBI_LOG_LEVEL INFO Logging level
CHIBI_EXPERIMENTAL_MACOS_PYOBJC_TRANSPARENCY ignored Legacy flag. PyObjC transparency is disabled; macOS always uses the stable Tk panel.

Develop

cd server
python3.12 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
pytest

Run directly (without an MCP client) for the WebSocket side only:

CHIBI_LOG_LEVEL=DEBUG python -m chibi_mcp

The stdio MCP side will wait for a client on stdin/stdout, so to test the WebSocket alone, connect a simple ws client to ws://localhost:9876 while the process runs.

Design notes

  • Counter resets only when the process restarts — intentional "today's-work" scope.
  • All metrics are local — no network calls, no telemetry, no accounts.
  • Milestone trigger is Claude-call-based (not wall-clock) — measures actual work, not just time sitting.

See ../SPEC.md and ../CHARACTER_DESIGN.md for the broader project context.

Metadata

Release files for chibi-mcp 1.4.41

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chibi-mcp 1.4.41
File Size Uploaded Provenance Actions
chibi_mcp-1.4.41.tar.gz 1.6 MB With provenance Details for chibi_mcp-1.4.41.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for chibi-mcp 1.4.41
File Interpreter ABI Platform Actions
chibi_mcp-1.4.41-py3-none-any.whl Python 3 none any Details for chibi_mcp-1.4.41-py3-none-any.whl

Total release size: 3.2 MB

Release files / chibi_mcp-1.4.41.tar.gz

Download URL chibi_mcp-1.4.41.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
2736d4c6c63e7e9e9918dec69a0334e43d681a265a4a7e3cac8ef0117e41c100
BLAKE2b-256 checksum
How to use checksums
9d2d9fd42bfa91a9cf621761e33832f24e99eb864a6d65f441e53d93571787a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 31, 2026.

Transparency log

Release files / chibi_mcp-1.4.41-py3-none-any.whl

Download URL chibi_mcp-1.4.41-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
8c0e0617cdee275ec91444126744c4b840c65b686e8d524c507652323cd17716
BLAKE2b-256 checksum
How to use checksums
a55220ae7e61d0b5f664efa4a1c13b480e4c17959c03a154a7b5edb7faffcb88
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 31, 2026.

Transparency log

Security for chibi-mcp 1.4.41

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for chibi_mcp-1.4.41.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 31, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page