---
title: Monitor
description: Read live cache, build, storage, and transfer state
---
Open the terminal dashboard:
```bash
kache monitor
kache monitor --since 1h
```
The monitor attempts to start the daemon for transfer statistics. It still reads the local store and event log if the daemon is unavailable.

## Header
| Field | Meaning |
| --- | --- |
| `Store` | Registered blob bytes and configured maximum |
| `Hit rate` | Count rate, compile-time-weighted rate, and miss-time share when timing exists |
| `Remote` | Effective remote state |
| `Dedup` | Logical bytes avoided by shared content blobs |
| `Blobs` | Physical blob bytes |
| `Transfer` | Active daemon uploads and downloads |
| wrapper and versions | Cargo wrapper source, client version, daemon version, and cache path |
## Tabs
1. `Build` shows compiler events, outcome, action, timing, and size.
2. `Projects` lists observed target directories and disk use. Press `r` to rescan.
3. `Store` lists cache entries. Press `s` to change sort order.
4. `Transfer` shows recent remote uploads and downloads.
5. `Passthrough` shows the route, exit code, and reason for uncached invocations.
`dup` means the compiler ran after a key miss but produced blobs already in the store. It is not a cache hit.
## Keys
```text
q quit
Tab next tab
1 2 3 4 5 select a tab
Up / Down scroll
f filter the current supported tab
s change Store sort
c clear Build events
r rescan Projects
```
## Triage
- Daemon offline: run `kache daemon status` and inspect `kache daemon log`.
- Store near its limit: run `kache gc`. If cloned outputs keep entries in place, preview stale targets with `kache clean --tracked --stale 14d --dry-run`.
- No remote activity: check daemon state, credentials, and `kache doctor`.
- Unexpected misses: run `kache why-miss <crate>`.