RoxyPryce

Chu — Productivity skill for Claude Code

Productivity community

A nervous system for coding agents: a Rust sidecar daemon and a Claude Code mod that give the agent a sense of time and closed loops: a cgroup boundary for every command, stall detection, and executor.

How to install Chu

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

What Chu does

A nervous system for coding agents: a Rust sidecar daemon and a Claude Code mod that give the agent a sense of time and closed loops: a cgroup boundary for every command, stall detection, and executor subagents with write-ahead logs and resume packs. Experimental, Linux only.

Alternatives in Productivity

  • Skill Context Detection — Auto-detect work context (Dev vs Knowledge) — use to tailor workflows based on current task type 2.8k ★
  • Parallel Task — Parallel Task Executor 1k ★
  • Agentacct — See what your coding agents did and what it cost 665 ★

README

chu (初)

A "nervous system" for coding agents: a resident sidecar daemon plus a [Claude Code](https://claude.com/claude-code) mod that give the agent the two things it lacks by default, **a sense of time** and **closed loops** around everything it starts.

The name comes from the first line of the I Ching: 初九,潜龙勿用, "Hidden dragon. Do not act." Every control component in chu starts in *shadow mode*: it records what it would have done, and only acts once the records show it can be trusted.

**Status:** experimental, built for one developer machine. Linux only for now. Milestones M0–M4 are done; M5 (leases, dead-man switches, armed rollback) is next. The design document, [`docs/architecture.md`](docs/architecture.md), is written in Chinese and is the single source of truth.

Why

  • Agents don't know how much time has passed. A session from a minute ago is "yesterday"; a task that hung hours ago is still being waited on.
  • Agents don't track what they start. Background processes, grandchildren and servers are fired and forgotten, then cleaned up with pkill by name, which regularly hits the wrong process.

The root cause: a model only wakes up on events, and **silence is not an event**. chu turns silence into events, and keeps state outside the model so any model instance can be replaced.

What it does

  • Time sense. Every message you send is annotated with the wall time, how long it has been since your last message, and what happened in between: machine sleep, reboots, clock jumps, alerts, interrupted tasks ("while you were away").
  • Process boundaries. chu starts Claude Code inside a delegated systemd scope. Every Bash call runs in its own cgroup (through a CLAUDE_CODE_SHELL_PREFIX shim, so permission rules see the original command), so nohup, setsid and double-forked children are all captured. Leftover processes are reported, orphans are scanned, and a session's processes can be reclaimed when it ends.
  • **Sensin