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 todefaultListLimit 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, butshow @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 code0; 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"
}
SettingDefaultMeaning
enabledfalseEnable or disable Activity recording.
maxCommandLineChars256Maximum stored command-line length. Valid range: 32–4096.
maxErrorMessageChars512Maximum stored error-message length. Valid range: 0–8192; 0 stores no error text.
retentionDays180Delete entries older than this many days during prune. Valid range: 0–36500; 0 disables age-based pruning.
maxEntries100000Maximum retained entry count. Valid range: 1–10000000.
maxDatabaseBytes134217728Target maximum database size in bytes. Valid range: 1 MiB–1 TiB.
defaultListLimit50Default number of entries returned by activity list.
maxListLimit500Maximum accepted list limit. Valid range: 1–10000.
shortIdChars12Length of compact UUID prefixes. Valid range: 4–36.
pruneOnAppendtrueApply the configured prune rules after appending an entry.
failureModebestEffortActivity 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.