activity

Review, filter, inspect, verify, prune, configure, and clear the local CLI execution history stored under .rinne/activity/.

Back to CLI Commands

Activity is a workspace-local command history, separate from snapshot history. Recording is disabled by default. When enabled, Rinne records each completed CLI command with its UUIDv7 id, timestamps, duration, sanitized command line, result, exit code, bounded error message, previous hash, and entry hash.

Entries form a BLAKE3 hash chain. This supports local consistency checks and makes accidental or partial changes detectable, but it is not an external audit service or a substitute for backups.

Activity write failures use best-effort handling and never replace the exit result of the command being recorded.

Usage
rinne activity status
rinne activity list [--skip <n>] [--limit <n>] [--since <date>] [--until <date>]
rinne activity show <@n|shortId|fullId>
rinne activity prune
rinne activity settings
rinne activity verify
rinne activity clear --force
Commands
status

Shows whether recording is enabled, database and settings paths, entry count, database bytes, head id and hash, prune anchor information, retention days, maximum entries, and maximum database bytes.

list

Lists entries newest first. --skip skips the newest N entries. --limit defaults to defaultListLimit and is clamped to maxListLimit. --since is inclusive; --until is exclusive internally.

Date-only values use local midnight. For --until, the next local day is used, so --until 2026-07-04 includes all entries on July 4, 2026. Date/time values may include an explicit offset; otherwise local time is assumed.

show

Shows full details for one entry. @0 is the newest entry, @1 is the next entry, and so on. You may also use a full UUID, a compact UUID without hyphens, or a unique hexadecimal UUID prefix of at least four characters.

The row numbers printed by a paged list --skip result restart at @0, but show @0 still means the newest entry in the full history. Use the displayed short id when opening an entry from a later page.

verify

Reads entries from oldest to newest and checks entry shape, result values, previous-hash continuity, recomputed BLAKE3 entry hashes, the retained prune anchor, and the final head id and head hash. A valid chain returns exit code 0; detected issues return 6 (CheckFailed).

prune

Applies retentionDays, maxEntries, and maxDatabaseBytes to the oldest entries. At least the newest entry is retained. After deletion, the oldest retained id, its previous hash, and the prune time are stored as the retained-chain anchor.

settings

Ensures Activity storage exists, then prints the settings path and normalized effective values. Edit .rinne/activity/settings.json to change recording and retention behavior.

clear --force

Deletes all Activity entries and starts a new Activity epoch. --force is required. When recording is enabled, the clear command itself is appended after completion, so one new entry remains.

Settings
{
  "enabled": false,
  "maxCommandLineChars": 256,
  "maxErrorMessageChars": 512,
  "retentionDays": 180,
  "maxEntries": 100000,
  "maxDatabaseBytes": 134217728,
  "defaultListLimit": 50,
  "maxListLimit": 500,
  "shortIdChars": 12,
  "pruneOnAppend": true,
  "failureMode": "bestEffort"
}
Setting Default Meaning
enabled false Enable or disable Activity recording.
maxCommandLineChars 256 Maximum stored command-line length. Valid range: 32–4096.
maxErrorMessageChars 512 Maximum stored error-message length. Valid range: 0–8192; 0 stores no error text.
retentionDays 180 Delete entries older than this many days during prune. Valid range: 0–36500; 0 disables age-based pruning.
maxEntries 100000 Maximum retained entry count. Valid range: 1–10000000.
maxDatabaseBytes 134217728 Target maximum database size in bytes. Valid range: 1 MiB–1 TiB.
defaultListLimit 50 Default number of entries returned by activity list.
maxListLimit 500 Maximum accepted list limit. Valid range: 1–10000.
shortIdChars 12 Length of compact UUID prefixes. Valid range: 4–36.
pruneOnAppend true Apply the configured prune rules after appending an entry.
failureMode bestEffort Activity write failures do not change the main command result. v1 always normalizes this value to bestEffort.

Missing, unreadable, or invalid CLI settings fall back to built-in defaults. Numeric values outside their accepted ranges are replaced by the corresponding built-in default; defaultListLimit is also constrained by the normalized maxListLimit.

Command-line sanitization

Before storage, line breaks and repeated whitespace are collapsed and the command line is truncated to maxCommandLineChars.

  • save -m <message> and save --message <message> store the message as <message>.
  • note ... append <text> and note ... overwrite <text> store the note body as <text>.

This is targeted masking, not general secret detection. Do not place passwords, tokens, or other sensitive values in unrelated command arguments.

Examples
Show current state
rinne activity status
List the newest 25 entries
rinne activity list --limit 25
List one local calendar day
rinne activity list --since 2026-07-04 --until 2026-07-04
Open the newest entry
rinne activity show '@0'
Open an entry by short id
rinne activity show 0197a2d91f32
Verify the retained hash chain
rinne activity verify
Apply retention limits
rinne activity prune
Clear all entries
rinne activity clear --force

Activity commands require the current directory to be a Rinne workspace. Run rinne init first when .rinne/ does not exist.