dsh-doctor
asdf17128
Find what your DeepSeek Harness (dsh) patches silently broke — dead patches, config fields dropped by whole-config repla…
PROJECT TOPICS
PROJECT README
An animated desktop companion for AI agents.
English · 简体中文
Agent Cat brings AI agent activity to life through animated desktop pets and real-time status updates. It is designed as an agent- and platform-independent companion, with Codex, Claude Code, and DeepSeek Harness integrations on macOS and Windows.
Current status: Agent Cat is under active development. The current version supports macOS 12 or later and Windows 10 or later, and integrates with Codex, Claude Code, and DeepSeek Harness. Support for more agents and operating systems is planned.
Download the latest build from GitHub Releases.
The current macOS build is not notarized with an Apple Developer ID. If macOS blocks the first launch, right-click Agent Cat and choose Open, or allow it from System Settings → Privacy & Security. Only install builds downloaded from this repository.
The current Windows build is not code-signed. Windows SmartScreen may show a warning on first launch; only continue when the installer was downloaded from this repository.
~/.codex/pets, and user-selected directoriesAgent Cat can react to Codex sessions through command hooks. The settings window can install, repair, test, and remove the integration while preserving hooks owned by other tools.
The integration currently recognizes session start/end, prompt, tool, subagent, compaction, permission, completion, and interrupted-turn events. Live status and task summaries can be enabled independently.
Agent Cat installs command hooks into ~/.claude/settings.json without replacing existing Claude Code settings or hooks. It observes 13 state-relevant events covering sessions, prompts, tools and tool failures, subagents, compaction, permission requests, turn completion and API failures. The integration can be installed, tested, paused, repaired, and removed independently from Codex.
Agent Cat reacts to DeepSeek Harness through the bundled dsh-session-agent-cat plugin (Settings → Agents → DeepSeek Harness → Connect). It forwards only sanitized lifecycle metadata locally — tool arguments, file contents, and terminal output never leave the harness process. Restart DeepSeek Harness after the first install or an update; see the plugin README for details.
Each pet lives in its own directory and contains a pet.json manifest plus a PNG or WebP spritesheet:
{
"id": "my-pet",
"displayName": "My Pet",
"description": "An optional description",
"spriteVersionNumber": 2,
"spritesheetPath": "spritesheet.png"
}
The current renderer supports the Codex-compatible sprite layout:
192 × 2088 × 9 cells (1536 × 1872)8 × 11 cells (1536 × 2288)spriteVersionNumber may be 1 or 2; omitting it selects v1Place custom packs in ~/.codex/pets or add another directory from Settings.
npm install
npm run tauri -- dev
Right-click the pet to open Settings. Auxiliary windows can also be opened from the command line:
agent-cat --settings
agent-cat --pet-debug
Install Playwright Chromium once before running the browser tests or regenerating screenshots:
npx playwright install chromium
npm test
npm run test:e2e
npm run screenshots
npm run build
cargo test --manifest-path src-tauri/Cargo.toml
npm run tauri -- build
npm run screenshots regenerates the deterministic product images in docs/images with mocked local data.
To build only the Windows NSIS installer, run npm run build:windows on Windows. On macOS, npm run build:macos builds the app bundle.
assets/ Original application and menu bar artwork
docs/ Product screenshots generated for the README
e2e/ Browser tests and the deterministic screenshot generator
fixtures/ Deterministic pet packs used by automated tests
plugins/ Agent integration plugins (e.g. dsh-session-agent-cat)
src/ HTML, TypeScript, CSS, and frontend tests
src-tauri/ Rust backend, Tauri configuration, and platform icons
Agent Cat processes Codex, Claude Code, and DeepSeek Harness events locally. Its hook helper extracts lifecycle identifiers, the hook event name, and a sanitized tool name, sends them through a local Unix domain socket on macOS or a loopback-only TCP connection on Windows, and exits immediately. For Codex only, it also receives the active transcript path to detect Esc interruptions, reads only newly appended records while a task is active, and discards raw records after checking their lifecycle metadata. Claude Code transcripts are not observed, and the DeepSeek Harness plugin likewise forwards only sanitized lifecycle metadata.
When task summaries are enabled, Agent Cat keeps at most the first non-empty prompt line, truncated to 80 characters, in memory for live display. It does not store the summary in its configuration, logs, or history.
Agent Cat does not persist full prompts, tool arguments, file contents, transcripts, terminal output, token usage, or model information. It does not maintain an activity history or send this data to a remote service.
Contributions and ideas are welcome while the project takes shape.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。