{"slug": "hi-hn-loopy-agent-meta-loop-engineer-my-claude-code-and-codex-sessions", "title": "Hi HN: Loopy agent, meta-loop engineer my Claude Code and codex sessions", "summary": "Loopy, a local terminal meta-agent that watches Claude Code and Codex sessions to identify repetitive patterns and propose automation loops, has been released. The tool aims to help developers shift from manual prompting to autonomous loops, potentially reducing repetitive task overhead from 90 minutes to 10 minutes per week. Early users report discovering 3-5 automatable patterns per month, with each well-chosen loop replacing 50-200 manual prompts.", "body_md": "**A terminal meta-agent that watches how you work, finds the patterns, and writes the loops so you don't have to.**\n\n\"I don't prompt Claude anymore. I have loops running that prompt Claude and figure out what to do. My job is to write loops.\"—\n\nBoris Cherny, creator of Claude Code at Anthropic\n\n\"Stop prompting coding agents. Start designing the loops that prompt them.\"—\n\nPeter Steinberger, founder of OpenClaw (formerly Warelay)\n\nThe top engineers using Claude Code and Codex aren't manually prompting back and forth. They're building autonomous loops — programs that observe, decide, and act on their behalf. The problem: most developers don't know where to start. Finding the right things to automate takes observation, pattern recognition, and time you don't have.\n\n**loopy does that work for you.**\n\nloopy is a local meta-agent that runs quietly in your terminal alongside Claude Code. It watches your sessions, spots work you keep doing by hand, and proposes ready-to-install automation loops — each one a self-contained script with its own trigger, operating instructions, and install record.\n\nYou review proposals in the dashboard. You approve the ones that make sense. The loop runs.\n\nEverything stays on your machine. The only LLM calls go through your own `claude -p`\n\nbinary — loopy never phones home.\n\nMost Claude Code users are leaving 40–70% of their potential on the table by staying in prompt-response mode. Here's what shifts when you move to loops:\n\n| Metric | Manual prompting | With loops |\n|---|---|---|\n| Repetitive task overhead | ~90 min/week | ~10 min/week |\n| Token burn on repeated patterns | baseline | 20–35% lower |\n| PRs shipped without touching code | 0 | avg 8–15/day (Boris Cherny's reported output) |\n| Time to identify automatable patterns | hours of self-observation | automatic |\n| Cognitive load per session | high (every decision is manual) | low (loops handle the known paths) |\n\n**A single well-chosen loop replaces 50–200 manual prompts per month.** At 3 seconds per prompt cycle, 3 active loops save you roughly **15–30 minutes per day** — compounding as your loop library grows.\n\nEarly loopy users report discovering **3–5 automatable patterns per month** they would never have spotted manually. Most of those become 10-minute installs.\n\nloopy is a small local pipeline that runs continuously in the background:\n\n```\nClaude Code sessions\n       │\n       ▼\n  [watcher] — notices new session transcripts via launchd daemon\n       │\n       ▼\n  [digester] — compresses + redacts each session to a compact text digest\n       │\n       ▼\n  [engine] — sends digests to your own claude -p CLI, looks for recurring patterns\n       │\n       ▼\n  [inbox] — good candidates land as proposals; you review and approve\n       │\n       ▼\n  [installed loop] — loop.md + trigger + manifest wired into Claude Code or Codex\n```\n\nThe engine uses your own Claude API credits. No separate service, no subscription, no cloud component.\n\n```\ncurl -fsSL https://raw.githubusercontent.com/secretbuilds/loopy/main/install.sh | bash\n```\n\nThen finish setup:\n\n```\nloopy setup\n```\n\nThe installer clones the repo to `~/.loopy-app`\n\n, builds it, and links the `loopy`\n\nbinary to your PATH. Re-running the same command updates to the latest version.\n\nOptions for setup:\n\n```\nloopy setup --companion manual   # no automatic nudges\nloopy setup --no-daemon          # configure without the background daemon\n```\n\n**Requirements:** Node ≥ 20, git, Claude Code CLI (`claude`\n\n) in your PATH, macOS.\n\n```\nloopy\n```\n\nRunning `loopy`\n\nwith no arguments opens the full-terminal hub:\n\nThe **header** shows your agent (Loopy) with live status: sessions watched · daemon state · today's token spend vs cap.\n\nThree panels:\n\n**inbox**— pending loop proposals. Select one to see its summary, estimated impact, evidence count, and confidence score. Approve, dismiss, or snooze.**loops**— your installed loops, with trigger kind and target tool.** activity**— scrolling log of everything loopy has done in the background.\n\nKeys:\n\n| Key | Action |\n|---|---|\n`tab` |\nSwitch focused panel |\n`↑` / `↓` |\nMove within panel |\n`a` |\nApprove proposal (asks `[y]es / [n]o` first) |\n`d` |\nDismiss proposal (asks `[y]es / [n]o` first) |\n`z` |\nSnooze for 7 days |\n`s` |\nTrigger a scan now |\n`p` |\nPause / resume daemon |\n`q` |\nQuit |\n\nThe dashboard resizes with your terminal. It needs at least 60×16 — below that it shows a hint to grow the window.\n\n| Command | What it does |\n|---|---|\n`loopy` |\nOpen the full-terminal dashboard |\n`loopy review` |\nOpen dashboard focused on the proposal inbox |\n`loopy companion` |\nAlias for the bare command |\n`loopy setup` |\nInitialize config, trigger hook, and daemon |\n`loopy setup --no-daemon` |\nConfigure without the background daemon |\n`loopy scan` |\nAnalyze local digests and surface new proposals now |\n`loopy list` |\nList installed loops |\n`loopy uninstall <id>` |\nRemove a loop and everything it installed |\n`loopy pause` |\nPause the background daemon |\n`loopy resume` |\nResume the background daemon |\n`loopy status` |\nShow daemon, spend, and proposal status |\n`loopy mark` |\nDrop a session marker (used by the trigger hook) |\n`loopy daemon` |\nRun the watcher in the foreground |\n\nThe installer also drops a `/fable`\n\nslash command into `~/.claude/commands/`\n\nso it's available in **any Claude Code session**, globally.\n\n```\n/fable <your prompt>\n```\n\nThis routes your prompt through the full **Claude Fable 5** system prompt and model, inline in your current session. The response comes back as if you'd switched to Fable 5 for that one message — without leaving your session or changing your model.\n\n```\n/fable make this component prettier\n/fable rewrite this in a more conversational tone\n/fable explain this to a non-technical stakeholder\n```\n\nUnder the hood it spawns `claude -p --model claude-fable-5 --system-prompt-file ~/.loopy/prompts/fable.md`\n\nas a subprocess and returns the output inline. The Fable 5 system prompt is stored at `~/.loopy/prompts/fable.md`\n\n(installed automatically — no setup needed beyond running the installer).\n\nAn approved proposal becomes a **bundle** at `~/.loopy/loops/<id>/`\n\n:\n\n```\nloop.md          — operating instructions fed to Claude\ntrigger.json     — schedule, hook, or manual trigger metadata\nmanifest.json    — evidence, target tool, every path installed\nstate/           — loop-local state (persists across runs)\n```\n\nThe manifest is what makes `loopy uninstall`\n\nexact: it removes only the paths it created for that specific loop, with no guesswork.\n\nTranscripts stay on your machine. Always.\n\nBefore any digest is sent to an LLM, loopy redacts:\n\n- API keys, tokens, passwords, bearer tokens\n- GitHub tokens, AWS keys, URL credentials\n- High-entropy strings that look like secrets\n\nThe engine sends only compact redacted digests to your own `claude -p`\n\nprocess. loopy does not contact any external service.\n\n**Claude Code and Codex power users** who want to graduate from manual prompting to loop engineering but don't know where to start**Developers shipping AI-assisted projects** who want to systematically reduce the cognitive overhead of repetitive prompting**Anyone who's read Boris's workflow post** and thought:*I want that, but I can't find my own patterns yet*\n\nloopy gives you the observation layer. You bring the judgment. The loops handle the rest.\n\nloopy may suggest automation, but it never shames you for ignoring, snoozing, or dismissing a proposal. A quiet tool is better than a nagging one. Your inbox, your call.\n\n```\ngit clone https://github.com/secretbuilds/loopy.git\ncd loopy\nnpm install\nnpm run build\nnpm link\nloopy setup\n```\n\nRun the full test suite:\n\n```\nnpm run typecheck && npx vitest run\n```\n\nManual smoke render (verify dashboard geometry):\n\n```\nnpx tsx scripts/dash-smoke.ts 120 40\n```\n\nLive proposal-quality eval (requires `claude`\n\nCLI):\n\n```\nnpx tsx scripts/live-eval.ts\n```\n\n*loopy is early software. It watches Claude Code sessions on macOS via launchd. Windows/Linux daemon support is on the roadmap.*", "url": "https://wpnews.pro/news/hi-hn-loopy-agent-meta-loop-engineer-my-claude-code-and-codex-sessions", "canonical_source": "https://github.com/secretbuilds/loopy", "published_at": "2026-06-14 04:22:23+00:00", "updated_at": "2026-06-14 04:29:44.757624+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "large-language-models", "ai-tools", "generative-ai"], "entities": ["Loopy", "Claude Code", "Codex", "Anthropic", "Boris Cherny", "Peter Steinberger", "OpenClaw", "Warelay"], "alternates": {"html": "https://wpnews.pro/news/hi-hn-loopy-agent-meta-loop-engineer-my-claude-code-and-codex-sessions", "markdown": "https://wpnews.pro/news/hi-hn-loopy-agent-meta-loop-engineer-my-claude-code-and-codex-sessions.md", "text": "https://wpnews.pro/news/hi-hn-loopy-agent-meta-loop-engineer-my-claude-code-and-codex-sessions.txt", "jsonld": "https://wpnews.pro/news/hi-hn-loopy-agent-meta-loop-engineer-my-claude-code-and-codex-sessions.jsonld"}}