- Building the missing toolbelt for Claude Code: captain-hook for declarative hooks, cc-pool for account pooling, cc-review for reviewing Claude's diffs in a PR-style web UI, cc-transcript for typed transcripts, and slop-cop to catch AI-flavored prose β and now to rewrite it, with a
plainifypass that puts prose into plain English under word and vocabulary constraints - Converging those pieces into one session-activity platform β typed events and a decision ledger in cc-transcript, with captain-hook as its hook runtime. Both sides now read a relay envelope as agent-injected, so a relay stops opening a turn in cc-transcript and stops counting as an authored prompt in captain-hook, whose dispatch judges lane tool events against the lane transcript rather than the parent's task β and building cc-orchestrate into a pure-Go CLI that runs fleets of agents across pluggable backends like cmux, superset, tmux, and zellij, each with an AgentProber liveness check for long-lived, keep-alive sessions β with cc-vigil, a transcript-oracle sleep inhibitor, keeping the Mac awake only while those agents are truly working
- Running the whole cc-* fleet on shared substrate: daemonkit for daemon lifecycle β one macOS-only Serve/Client/Control surface, one schema generating the frame codec for both Go and Swift behind a drift gate, and no byte reaching a peer whose code identity hasn't been judged. captain-hook, cc-pool, cc-notes, cc-interact, fusekit, cookiesync, synckit, cc-orchestrate, cc-present, cc-review, cc-runtime, and cc-squash have all moved onto it, each stating a deadline budget at every choke point; v0.22 took the socket path out of a spawned child's argv entirely β the child inherits its session on fd 3 β and v0.23 has since moved every daemon's private state under
~/.daemonkit/a/<label>, with HelperPaths no longer deriving the socket at all. With v0.23 in, the fleet has deleted what it made obsolete: daemonkit retiredRemoveUnmarkedand itsErrMarkedsentinel, the deprecated launchdSessionTypeAPI, the legacy bbolt sweep, the pre-rename metadata migration, and the markerless-plist fallback, and synckit dropped its pre-v0.21 LaunchAgent sweep β while every agent plist now renders a Homebrew-first PATH - Cutting that substrate through to releases: cc-review has cut 0.36.0 β daemonkit v0.23.0 underneath, cc-interact v0.33.0's subprocess-free Root above it, and a daemon that chains turn starts when no review is open β while cc-runtime cut 0.18.0 onto the same surface, cc-orchestrate runs its pty hosts as Serve products under one Daemon, and binrun gates every release on a tag resolving to one exact commit on main
- Teaching cc-context to ship the way I actually branch:
ccx vcs stackdrives a Graphite stack that spans one working copy per branch β restacking one spread across working copies instead of refusing it, pinning every child to its own copy andgt trackto its branch, and running a repo's hooks only where CI never will. Those paths have since moved off the gt CLI: the stack is read from Graphite's own database, the downstack submits over Graphite's API, and a refusal carries what Graphite actually said β withccx vcs statusreading the merge queue through gt to reconstruct the snapshot no GitHub field carries, catching a branch reparented out from under its PR, submitting one whose work is already committed instead of refusing it, and no longer telling a--no-commitship to re-run the command that just failed. Restack has since moved ontogit replay, so a branch another worktree holds can no longer stop the stack, and a merged decline from gt gets read rather than dropped - Running cc-sentiment, an open experiment in whether developer sentiment with Claude Code tracks the model, the tooling, or just the time of day
- Self-hosting yclaw, an always-on, reproducible Apple Silicon home server for the Nous hermes-agent β gVisor-sandboxed and tailnet-only, so the agent never touches your credentials
- Engineer & CEO at Aneta
Recent activity
2026-09-02Worked on a pull request in yasyf/slop-cop β added plainify, rewriting prose into plain English under vocabulary limits2026-09-02Worked on a pull request in yasyf/captain-hook β spelled --cwd against the root so a deleted workspace stops failing its hooks2026-09-02Worked on a pull request in yasyf/cc-skills β gave design-doc an executive summary and a plain-language interview2026-09-02Created something new in yasyf/captain-hook2026-09-02Pushed to yasyf/captain-hook β judged lane tool events against the lane transcript, not the parent's task2026-09-02Pushed to yasyf/cc-transcript β matched relay envelopes as agent-injected, so relays stop opening turns2026-09-02Worked on a pull request in yasyf/cc-transcript2026-09-02Created something new in yasyf/cc-transcript2026-09-01Pushed to yasyf/homebrew-tap β bumped the ccx formula to v0.55.02026-09-01Pushed to yasyf/cc-context β read gt's merged decline instead of dropping it2026-09-01Pushed to yasyf/cc-review β cut 0.36.0 on cc-interact v0.33.0's subprocess-free Root and turn queries2026-09-01Worked on a pull request in yasyf/cc-review β chained turn starts when no review is open, with async prompt hooks
22,764 contributions in the last year
- gpt-do β 211 β GPT-powered bash commands.
Python - summ β 152 β GPT-based Conversation Summarizer
Python - compress-gpt β 217 β Self-extracting GPT prompts for ~70% token savings
Python - anthropic-computer-use-modal β 51 β Anthropic Computer Use with Modal Sandboxes
Python - shamer β 37 β Code Coverage Gamified
Python
Claude Code, continued
- cc-skills β the plugin marketplace where the whole toolbelt ships
- cc-guides β srcβartifact doc rendering with embedded canonical fragments, keeping every repo's CLAUDE.md and AGENTS.md in sync
- cc-notes β a notes-and-tasks layer agents can actually use, now with a derived knowledge graph over everything they've recorded
- cc-runtime β a runtime that hands Claude Code its harness-injected tools, AskUserQuestion and friends
- cc-interact β the human-in-the-loop agent/daemon/web framework, pulled out of cc-review
- cc-present β ad-hoc live web artifacts for a session: approval boards and choices whose every click streams back to the agent
- cc-factory β a software factory where orchestrated agents plan, build, review, and ship
- cc-steer β learns how you steer Claude from past sessions, then does the steering for you
- cc-pane β one pane of glass over Claude Code and the whole cc-* toolbelt
- cc-sudo β sudo for Claude Code: one Touch ID tap per privileged command
- cc-patch β fast mode for Claude Code's delegated agents, re-applied automatically on every spawn, now with local packs and replace sites
Taming long sessions
- cc-merge β a merge queue for the git worktrees where finished Claude outputs land
- cc-context β ccx, token-bounded codebase context for agents; takes
cataway from your agent - cc-squash β augmented auto-compaction for marathon Claude Code sessions
- cc-vigil β a transcript-oracle sleep inhibitor that keeps your Mac awake only while Claude agents are truly working
Claude Code, off the clock
- getaway β plan award trips from Claude Code: sweeps seats.aero across 28 mileage programs and composes whole journeys, flights out and home plus hotel award nights via rooms.aero
- dailies β stop being your own cron job
Systems & libraries
- authkit β a signed macOS helper for Touch ID consent and Secure Enclave attestation, replacing the old cookiesync keyhelper
- fusekit β detached FUSE-T mount-holder and mount-lifecycle primitives for Go, now under cc-pool and cc-notes, with a process ledger that tells a real reboot from a slewed clock
- daemonkit β the durable daemon-lifecycle runtime the cc-* control planes now ride: detached spawns, codesign trust, and drain-on-upgrade
- binrun β fetch, verify, and exec the exact artifact a descriptor pins: release binaries, Python tools, signed apps β the shim the cc-* tools now ship behind
- semisweet β an async, in-memory semantic cache with pluggable backends
- experiment-at-home β the plumbing every local AI experiment rebuilds, built once: modal, mlx-lm, and tinker backends behind one registry
- spawnllm β call an LLM from any subshell: Claude, Codex, a local MLX model, or Apple's on-device Foundation Models
- pocket-llm β on-device LLM sessions for any browser: Chrome's Prompt API, WebLLM, or wllama, picked by feature detection, smallest model first
Cross-host sync
- synckit β the shared substrate the tools below build on: host mesh, a convergent registry, unix-socket RPC, and synckitd, the daemon they now ride
- reposync β your other machine already pulled: git checkouts kept in step across every host you work from
- cookiesync β your other Mac already did the 2FA: browser sessions moved between your own machines, consent gated behind Touch ID via authkit
Python, with fewer footguns
- python-defer β Go-style
deferin Python, no decorators required - python-secret-type β a rune-style
secrettype so credentials can't leak by accident - docker-dsl β write multi-stage Dockerfiles as Python context managers
- bcferries β the Python client for BC Ferries schedules; proudly Canadian π¨π¦
Earlier eras
- safemodels β cryptographic provenance proofs for model weights, before that was cool
- vc β the voting platform Dorm Room Fund used to pick its investments
- hifromtheotherside β fighting the echo chamber, one cross-aisle match at a time
- controlio β control your computer over SMS, 2014 edition
2026-09-02slop-cop v0.1.642026-09-02captain-hook v12.23.3 β spelled --cwd against the root so a deleted workspace stops failing its hooks2026-09-02cc-skills v1.11.1 β added a cc-present block pack for the design-doc interview rounds2026-09-02cc-context v0.56.0 β restacked with git replay, so a branch another worktree holds cannot block it2026-08-31cc-notes v0.51.3 β stopped a dict tool response killing the handler reading it2026-08-30cc-pool v0.69.0 β addedccp package resetto retire a wedged deployment2026-07-27spawnllm v0.11.0 β added an Apple Foundation Models on-device backend and exact-model passthrough
Language breakdown
Go ββββββββββββββββββββ 35%
Python ββββββββββββββββββββ 35%
Ruby ββββββββββββββββββββ 10%
Rust ββββββββββββββββββββ 6%
Swift ββββββββββββββββββββ 6%
TypeScript ββββββββββββββββββββ 6%
Latest from Yasyf's Random Musings:
- Improving Claude Computer Use
- On Securing Model Supply Chains
- python π€
defer - Haystack + Pinecone Hybrid Vectors
- CompressGPT: Decrease Token Usage by ~70%
Automate the boring parts, then automate the automation.






