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.
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 --forceShows 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.
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.
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.
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).
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.
Ensures Activity storage exists, then prints the settings path and normalized effective values. Edit.rinne/activity/settings.json to change recording and retention behavior.
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.
{
"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.
Before storage, line breaks and repeated whitespace are collapsed and the command line is truncated to maxCommandLineChars.
save -m <message>andsave --message <message>store the message as<message>.note ... append <text>andnote ... 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.
rinne activity statusrinne activity list --limit 25rinne activity list --since 2026-07-04 --until 2026-07-04rinne activity show '@0'rinne activity show 0197a2d91f32rinne activity verifyrinne activity prunerinne activity clear --forceActivity commands require the current directory to be a Rinne workspace. Run rinne init first when.rinne/ does not exist.