# `zfin cache` Inspect or clear the local provider-data cache. ``` Usage: zfin cache | zfin cache refresh [SYMBOL...] ``` | Subcommand | Does | |------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| | `stats` | List every cached symbol with per-data-type size, age, and freshness state. Stale entries (past TTL) are flagged. Includes `cusip_tickers.srf` if present. | | `stale` | Find symbols whose newest candle is behind their peers'. Read-only; reports, never fetches. | | `refresh` | Force-refresh candle data in the **local** cache, bypassing the TTL and the shared server. No arguments refreshes exactly what `stale` reports. | | `clear` | Delete every file under the cache directory. No confirmation; the next provider call re-fetches everything. | The cache directory is `$ZFIN_CACHE_DIR` if set, otherwise `~/.cache/zfin`. ## `stale` compares against peers, not the clock A symbol is called stale when other cached symbols **of the same kind** (equity vs mutual fund) hold a newer bar than it does. That is a different question from "is this bar old?", and the peer framing is what makes it trustworthy: an un-modeled market closure moves every symbol together, so it cannot be mistaken for one frozen cache entry. ## `refresh` deliberately skips the server `zfin cache refresh` goes straight to the provider. It does **not** ask `ZFIN_SERVER`, because its job is to repair *your* copy. To refresh the server's copy instead, use [`zfin server refresh`](server.md); to find out which side is behind in the first place, use [`zfin diagnose SYMBOL`](diagnose.md). ## Examples ```bash zfin cache stats # what's cached, sizes, and ages zfin cache stale # which symbols are behind their peers zfin cache refresh # re-fetch exactly what `stale` reported zfin cache refresh SPY AGG # re-fetch these two zfin cache clear # wipe; everything re-fetches on next use ``` `clear` is safe -- it only removes cached copies of public market data. Reach for it when you suspect corrupt cached data; routine staleness is handled automatically by the `auto` refresh policy, and a stale adjustment basis repairs itself on the next refresh. ## See also - [Caching and data freshness](../../explanation/caching.md) -- TTLs and the fetch model. - [Offline use and refreshing data](../../guides/offline-and-refresh.md) -- the `--refresh-data` flag. - [`diagnose`](diagnose.md) -- trace one symbol through every tier. - [`server`](server.md) -- refresh the shared server's cache instead. --- [CLI command reference](index.md)