The first two posts were about making a single Claude session run better — skills for how it works, context engineering for what it knows. This one is about doing less of the work yourself.
Be honest about how you use Claude Code today. For most of us it’s a chat box:
Prompt. Wait. Copy. Fix. Prompt again.
You’re the runtime. The agent only moves when you push it, and the moment you stop pushing, everything stops. That ceiling isn’t the model — it’s you, hand-cranking every iteration.
Scaffold a loop: loop-engineering
loop-engineering is the clearest articulation of the idea I’ve found — practical patterns plus CLI tools. You stop prompting the agent and instead design the loop that prompts it for you.
Use it — three CLIs, no install needed (npx):
# 1. Scaffold a starter loop into your repo
npx @cobusgreyling/loop-init . --pattern daily-triage --tool grok
# 2. Estimate token spend before you run it
npx @cobusgreyling/loop-cost --pattern daily-triage --level L1
# 3. Audit whether your repo is even ready for a loop
npx @cobusgreyling/loop-audit . --suggest
(--tool also takes claude for Claude Code.) It ships seven named patterns: Daily Triage, PR Babysitter, CI Sweeper, Dependency Sweeper, Changelog Drafter, Post-Merge Cleanup, Issue Triage — each with a starter directory and spec.
Notice the staged rollout it pushes: L1 report-only → L2 assisted fixes → L3 unattended. That’s the boring, load-bearing part of an automation platform — triggers, state, cost controls, gates, escalation.
The data-engineer analogy: a loop is a DAG. A scheduled job that runs steps in order, carries state, fails loudly, and pages a human when it’s stuck. We’ve orchestrated pipelines like this for years — loop engineering points the same discipline at an agent.
Reach for it when you run the same agent chore on a rhythm — triaging issues each morning, nursing PRs through CI — and you’d rather encode the rhythm than perform it.
Caveat: start at L1 (report-only). An unattended loop without a verification gate isn’t leverage, it’s an automated way to make the same mistake at scale. loop-cost and the L1→L3 ramp aren’t extras — they’re the difference between a loop you trust and a bill you don’t.
Feed the loop fresh signal: Agent-Reach
A loop that only looks inward goes stale. Agent-Reach gives an agent eyes on the open internet — Twitter, Reddit, YouTube, GitHub, and more — from one CLI, zero API fees (it routes to open-source readers).
Install (Python 3.10+, agent that can run shell commands — Claude Code qualifies):
pip install agent-reach
agent-reach install --env=auto
agent-reach doctor # health-check which platforms are live
Use — Claude calls these from the shell:
twitter search "keywords"
opencli reddit search "keywords"
gh repo view owner/repo
curl https://r.jina.ai/URL # read any web page as clean text
Some platforms (Twitter, Reddit) need a one-time browser login; credentials stay local in ~/.agent-reach/config.yaml.
The data-engineer analogy: the ingestion step. Before a pipeline transforms anything, something pulls fresh data in. Agent-Reach is the source connector for a loop that needs to know what the outside world is saying.
Reach for it when your loop depends on external signal — tracking what’s said about a library, watching a topic, gathering competitive context on a schedule.
Caveat: “zero API fees” means scraping, which is fragile and bound by each platform’s terms. Treat it as best-effort, and have the loop degrade gracefully when a site changes its mind.
The heavier engine: deer-flow
deer-flow is ByteDance’s open-source “super agent harness” — it orchestrates sub-agents, memory, and sandboxes to chew on tasks for minutes to hours. Where loop-engineering is the orchestration and Agent-Reach is the feed, deer-flow is the kind of autonomous engine a loop hands a goal to and collects from later.
Be clear about what this is: not a Claude Code plugin. It’s a full self-hosted application — Docker, 4 vCPU / 8 GB RAM minimum, its own API keys.
Install:
git clone https://github.com/bytedance/deer-flow.git
cd deer-flow
make setup # wizard: pick LLM provider, configure features
make doctor # verify
Run (Docker, recommended):
make docker-init # pull sandbox image (once)
make docker-start
Then open http://localhost:2026. Keys live in .env (OPENAI_API_KEY, TAVILY_API_KEY, …); models are wired in config.yaml.
Reach for it when you have genuinely multi-step work (research-then-build) that’s well-specified enough to define “done” up front — and you’re willing to run infrastructure for it.
Caveat: “hours without supervision” is a feature and a warning. The longer it runs unwatched, the more a small wrong turn compounds before you see it. Scope tightly, define done sharply, and put a checkpoint where the cost of being wrong gets high. For most people, this is the last thing you reach for, not the first.
Where I’d start — and where I wouldn’t
Don’t try to automate your whole job on day one. The honest path:
That sequencing isn’t caution for its own sake — it’s the lesson every data team learns the hard way. You don’t put a pipeline in production because it ran once; you put it there because it fails safely, costs what you expected, and tells you when it needs a human. A loop is held to the same bar.
The shift is worth making, though. When Claude stops being a chat session and starts being a system that works, checks, fixes, and escalates on its own, the job changes — from doing the work to designing the thing that does the work. That’s a better use of an engineer.
This wraps the hands-on series. Want the whole map at once — all eleven repos, grouped by what they fix — see the roundup.