npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@aundal/ill-be-back

v1.0.5

Published

OpenCode plugin that keeps the active session cache warm while you are away.

Readme

opencode-ill-be-back

Keep the active OpenCode session cache warm while you are away.

ill-be-back watches the active session and starts a cache countdown after the first assistant reply. When you arm away mode with /illbeback, it sends a small keep-alive ping every time the countdown hits 0:00, until the ping limit is used. This keeps the provider prompt cache alive so your next real message reuses cached context instead of paying full input cost again.

Keep-alive pings use a fixed marker so they are never confused with your real messages:

I'll Be Back - Ping [UN1QU3M2G] n/x - REPLY: OK

Files

OpenCode can load these plugin files directly:

| File | Type | Loaded via | | --------------------- | -------------- | --------------- | | src/ill-be-back.ts | runtime plugin | opencode.json | | src/ill-be-back.tsx | TUI sidebar | tui.json |

Shared state is written to ~/.config/opencode/ill-be-back-state.json.

Install

Clone this repo under your OpenCode config directory, or copy the files into any path you control.

1. Register the runtime plugin

Edit ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["./github/opencode-ill-be-back/src/ill-be-back.ts"]
}

2. Register the TUI sidebar

Edit ~/.config/opencode/tui.json:

{
  "$schema": "https://opencode.ai/tui.json",
  "plugin": ["./github/opencode-ill-be-back/src/ill-be-back.tsx"]
}

3. Restart OpenCode

Plugins load at startup. Fully quit and restart.

Prefer letting an agent do this? See Install with an LLM.

Usage

Commands are registered by the TUI plugin (no commands/*.md needed):

| Command | Action | | ----------------------- | ------------------------------------------------------------------ | | /illbeback | Prompt for a ping count and arm away mode | | /illbeback-toggle | Show or hide the sidebar block | | /illbeback-shorttimer | Switch the title countdown between MM:SS and short form (5m) | | /illbeback-test | Measure the provider cache timeout and set a safe ping interval |

Sidebar

Title:

  • first load: I'll Be Back (-:--)
  • after first assistant reply: live countdown starts
  • away mode armed: countdown resets after each ping
  • state marker after the timer: idle, 🟢 <pings left> away, 🧪 testing

Expanded rows show Session and Total net USD savings. Each ping subtracts its cache-read cost; on your first real reply after returning, the preserved-cache benefit is added back once, capped to min(pre_away_context_tokens, return_reply.tokens.cache.read).

Timeout test

/illbeback-test finds your provider's cache timeout:

  1. starts at 5 minutes
  2. doubles while the cache is still warm, until the first cache miss
  3. bisects between last-cached and first-miss until the gap is under 10s
  4. stores a safe interval = 90% of the last cached delay

After that, keep-alive pings use the measured interval instead of the 4-minute default.

Options

There is no config schema. Behavior is tuned via constants at the top of src/ill-be-back.ts:

| Constant | Default | Meaning | | ------------------------------ | ------- | ---------------------------------------------------------------- | | DEFAULT_INTERVAL_SECONDS | 240 | Ping interval (seconds) until a timeout test measures a new one | | DEFAULT_MAX_PINGS | 5 | Ping count used when you confirm /illbeback without a number | | DEFAULT_TEST_DELAY_MINUTES | 5 | Starting delay for /illbeback-test | | CACHE_TIMEOUT_SAFETY_FACTOR | 0.9 | Fraction of the last cached delay used as the safe interval | | DEBUG | false | Show Last Ping / Time / Proof debug rows in the sidebar |

Runtime options (no restart): the ping count in the /illbeback prompt, and the toggle / shorttimer commands. Editing constants requires a restart.

Pricing for the savings display is pulled best-effort from models.dev. If it is unreachable, savings simply show 0.00 and pings/tests still run.

Development

npm pack
npm publish --access public

Notes

  • Restart OpenCode after updating plugin config or package versions.
  • /illbeback only resets the away cycle; session/total counters persist in ill-be-back-state.json.
  • Synthetic ping text is hidden from the model history but still warms the cache.

License

MIT. See LICENSE.