honey
FreeWrite less code and say less about it: YAGNI, stdlib-first, terse prose. Cuts agent token cost on every coding and writing task.
The English summary is being prepared. Showing the original description.
Cost discipline for recurring /loop runs: cache-aware pacing, event-driven-over-polling, no-change short-circuit, compact state handle, stop condition.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
A loop is the one place token waste compounds: cost = per_tick × ticks. The
honey levers still apply inside each tick (less code, less prose), but a loop adds
two leaks the single-shot levers don't cover — re-paying for context every
wake-up, and re-doing work that didn't change. Cut those.
Pace to the cache, skip the dead zone. The prompt cache TTL is 5 min.
< 270s → context stays warm; right for actively polling external state.≥ 1200s → one cache miss amortized over a long idle wait; the default for
idle ticks (use 1200–1800s).~300s is the worst choice — pays the cache miss without amortizing it.
Never round to "5 minutes." Drop to 270s or commit to 1200s+.Event-driven over polling. Harness-tracked work (background Bash, Agent,
Workflow) re-invokes you automatically on completion. Don't schedule a short
tick to poll it — that re-reads full context for nothing. Set a long fallback
heartbeat (1200s+) and let the completion notification drive you. Poll only
external state the harness can't see (CI, a deploy, a remote queue), at a
cadence matched to how fast that state actually changes.
No-change short-circuit. Re-generating output is the bulk of per-tick cost.
Check cheaply first (a hash, a timestamp, a git rev-parse, a status field). If
nothing changed: emit one line and reschedule. Don't redo the task, don't
re-read the world, don't write a report.
Carry a compact state handle, don't re-derive. Keep what the loop has done
so far in a small file (.honey-loop/state.json or a <<honey:HASH>> stash via
eso stash), and read that each tick — not the full history re-discovered from
scratch. Lever 3b: the cheapest input token is the one that never re-enters context.
Define done; then stop. An unbounded loop is unbounded cost. State the exit condition up front (target reached, N empty ticks, deadline). When met, end the loop — omit the wake-up reschedule. "Loop forever" is a bug, not a feature.
A loop tick is an agent-to-self / agent-to-log message, not a deliverable. Default
to ultra: status line only, near-zero prose. One line is enough —
tick 4/∞ · no change · next 1800s. Step up to a full report only on the tick
where something actually needs the user (state changed, a decision, an error).
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Write less code and say less about it: YAGNI, stdlib-first, terse prose. Cuts agent token cost on every coding and writing task.
The English summary is being prepared. Showing the original description.
Write less code and say less about it. Cuts token cost.
The English summary is being prepared. Showing the original description.
Write less code and say less about it. Applies YAGNI and stdlib/native-first so the agent writes the minimum code that needs to exist, and responds tersely — stripping filler, hedging, and pleasantries while keeping code, identifiers, and technical terms exact. Use whenever writing, modifying, refactoring, reviewing, or explaining code, or any response where output volume drives token cost — even if the user never says "minimal" or "concise". Especially in agentic coding, where the volume of generated code and prose runs up the bill.
The English summary is being prepared. Showing the original description.
Compress-cache-retrieve huge array tool output.
The English summary is being prepared. Showing the original description.
Compress-Cache-Retrieve huge repetitive array tool output before it hits context: keep a sample, cache the rest, leave a hash.
The English summary is being prepared. Showing the original description.
Compress-Cache-Retrieve for huge, repetitive array tool output (logs, scan results, time series, event streams) before it enters context. Keeps an informative sample — endpoints, anomalies/change-points, head/tail — drops the redundant rest to a local cache, and leaves a retrievable hash. Use when a tool returns a long uniform JSON array you must read but mostly skim, and the full set is one command away if needed. Lossy-but-recoverable.
The English summary is being prepared. Showing the original description.