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 --force 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.
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.
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.
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).
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 status rinne activity list --limit 25 rinne activity list --since 2026-07-04 --until 2026-07-04 rinne activity show '@0' rinne activity show 0197a2d91f32 rinne activity verify rinne activity prune rinne activity clear --force
Activity commands require the current directory to be a Rinne workspace. Run rinne init first when
.rinne/ does not exist.