Skip to content
View yasyf's full-sized avatar
🎯
Focusing
🎯
Focusing

Organizations

@PostPushr @mitsbc @mit @ProjectClarity @dormroomfund

Block or report yasyf

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
yasyf/README.md
Yasyf Mohamedali β€” Engineer & CEO @ Aneta. Currently building the missing toolbelt for Claude Code.

Website LinkedIn X

πŸ”­ Now

  • 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 plainify pass 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 retired RemoveUnmarked and its ErrMarked sentinel, the deprecated launchd SessionType API, 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 stack drives 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 and gt track to 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 β€” with ccx vcs status reading 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-commit ship to re-run the command that just failed. Restack has since moved onto git 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-02 Worked on a pull request in yasyf/slop-cop β€” added plainify, rewriting prose into plain English under vocabulary limits
  • 2026-09-02 Worked on a pull request in yasyf/captain-hook β€” spelled --cwd against the root so a deleted workspace stops failing its hooks
  • 2026-09-02 Worked on a pull request in yasyf/cc-skills β€” gave design-doc an executive summary and a plain-language interview
  • 2026-09-02 Created something new in yasyf/captain-hook
  • 2026-09-02 Pushed to yasyf/captain-hook β€” judged lane tool events against the lane transcript, not the parent's task
  • 2026-09-02 Pushed to yasyf/cc-transcript β€” matched relay envelopes as agent-injected, so relays stop opening turns
  • 2026-09-02 Worked on a pull request in yasyf/cc-transcript
  • 2026-09-02 Created something new in yasyf/cc-transcript
  • 2026-09-01 Pushed to yasyf/homebrew-tap β€” bumped the ccx formula to v0.55.0
  • 2026-09-01 Pushed to yasyf/cc-context β€” read gt's merged decline instead of dropping it
  • 2026-09-01 Pushed to yasyf/cc-review β€” cut 0.36.0 on cc-interact v0.33.0's subprocess-free Root and turn queries
  • 2026-09-01 Worked 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

πŸš€ Start here

  • 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

🧰 More things I built

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 cat away 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 defer in Python, no decorators required
  • python-secret-type β€” a rune-style secret type 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

πŸ“¦ Recently shipped

  • 2026-09-02 slop-cop v0.1.64
  • 2026-09-02 captain-hook v12.23.3 β€” spelled --cwd against the root so a deleted workspace stops failing its hooks
  • 2026-09-02 cc-skills v1.11.1 β€” added a cc-present block pack for the design-doc interview rounds
  • 2026-09-02 cc-context v0.56.0 β€” restacked with git replay, so a branch another worktree holds cannot block it
  • 2026-08-31 cc-notes v0.51.3 β€” stopped a dict tool response killing the handler reading it
  • 2026-08-30 cc-pool v0.69.0 β€” added ccp package reset to retire a wedged deployment
  • 2026-07-27 spawnllm v0.11.0 β€” added an Apple Foundation Models on-device backend and exact-model passthrough

πŸ›  Toolbox

Python, Go, Ruby, C, JavaScript, Swift, PHP, HTML, Docker, Git, Bash, GitHub Actions

Language breakdown
Go          β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   35%
Python      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   35%
Ruby        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘   10%
Rust        β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘    6%
Swift       β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘    6%
TypeScript  β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘    6%

✍️ Writing

Latest from Yasyf's Random Musings:


Automate the boring parts, then automate the automation.

Contribution graph eaten by a snake

Pinned Loading

  1. gpt-do gpt-do Public

    GPT-powered bash commands.

    Python 211 11

  2. summ summ Public

    GPT-based Conversation Summarizer

    Python 152 7

  3. compress-gpt compress-gpt Public

    Self-extracting GPT prompts for ~70% token savings

    Python 217 12

  4. anthropic-computer-use-modal anthropic-computer-use-modal Public

    Anthropic Computer Use with Modal Sandboxes

    Python 51 3

  5. shamer shamer Public

    Code Coverage Gamified

    Python 37 5

  6. python-defer python-defer Public

    Golang-style `defer` with no decorators!

    Python 26