Jiajia banner
cloudinjun cloudinjun

Jiajia

AI community

Description

Jiajia (夹夹) — a paperclip that lives on your desktop, watches your Codex and Claude quotas, and says the quiet part out loud. It puts on a suit for English. Procedural vector animation, zero runtime dependencies.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Jiajia (夹夹)

**A privacy-aware behavior system for ambient AI agents.**

[![CI](https://github.com/cloudinjun/jiajia/actions/workflows/ci.yml/badge.svg)](https://github.com/cloudinjun/jiajia/actions/workflows/ci.yml) ![Platform](https://img.shields.io/badge/platform-Windows%2011-lightgrey) ![Python](https://img.shields.io/badge/python-3.11%2B-blue) ![Runtime deps](https://img.shields.io/badge/runtime%20dependencies-0-brightgreen) ![License](https://img.shields.io/badge/license-MIT-green)

![User input to thinking to reply](docs/media/hero-interaction.gif)


The problem

Coding agents run for minutes at a time behind a scrolling log. While an agent works, two things go wrong at once:

  • It is invisible. You cannot tell whether the model is thinking, running a tool, stuck, waiting on you, or finished. So you keep checking.
  • When it does need you, it interrupts badly. A permission prompt has the same weight as a completion notice, and both arrive while you are mid-sentence in a meeting.

The usual fixes make it worse. More notifications train you to dismiss them. Richer status panels demand that you go look. And most "AI companion" products buy legibility by reading your screen.

**How can an ambient agent make its internal state legible, ask for intervention proportionately, and hold a coherent personality — without becoming another notification system, and without reading private content?**

Jiajia is a working answer to that question. The desktop pet is the test vehicle, not the point.

Design thesis

Three commitments drive every decision in this repository:

  1. State is communicated through motion, not text. If you have to read a label to know the agent is stuck, the design failed. Body language is ambient — it costs a glance, not a context switch.
  2. Interruption is a policy, not a side effect. What the agent wants to say and whether you can be interrupted are separate axes, resolved explicitly.
  3. **Legibility must not