jk manual
Inspect changes and compare content
Review the graph, revision details, diffs, file changes, and a change's evolution.
In an existing jj repository, use the log to choose @ or another visible revision, Enter to read
its details, and d to review its content. Backspace returns to your previous place in the preceding
view. In ordinary rendered inspection output, Esc quits jk; dialogs and search prompts handle it
separately.
Read more or less graph detail
Start explicit log output with a limit or a jj template:
jk log -n 40
jk log -T 'builtin_log_oneline'
The top-level jk -n 40 limits the configured default view. A limit on jk log takes precedence
over a top-level limit. H returns to the configured default command, while L chooses explicit
jj log.
Press V, select Template, and press Enter. Choose configured, comfortable, compact, compact with
full descriptions, detailed, oneline, or redacted, then press Enter to load it. A custom template
supplied with -T remains available in that session’s selector. Esc closes a selector without
applying its current choice. Rendering and revision identity are read separately, so changing the
displayed template does not turn description text into mutation operands.
Use l or Right to expand a revision’s inline details and h or Left to collapse them. When the
cursor is on an elided portion of the graph, Enter or Right opens its omitted history. Backspace
or Left returns to the preceding graph scope.
There is no general revset input for the native log. For an ad hoc query, press : and run log -r 'mine()'; its result is captured command output. It does not become a navigable native log. To make
a revision available to a native picker, first make it visible through the configured log scope or a
broader log view.
Review revision details and status
From the log, press Enter on the change to see jj’s description and patch. To start directly with
one or several revisions, use:
jk show @
jk show @ @-
Press s from the log to see the working-copy status. The cursor does not change which workspace
status describes. A startup status command can narrow the displayed files:
jk status
jk status 'glob:src/**'
Status filesets filter the report; they do not select content for a later squash or restore. Compare
status with d on @ when you need to see the content behind a changed filename.
In rendered inspection views, j/k, Page Up/Down, and g/G move through the output. / opens
search; enter text and press Enter, then use n/N to visit matches. Esc closes the search
prompt. r reloads the same query.
Compare one change or two trees
From the log, d compares the selected change with its parent content. These startup forms make the
comparison explicit:
jk diff
jk diff -r @-
jk diff @-
jk diff --from @- --to @
Bare jk diff uses @. The positional revision is a compatibility form of -r. A two-tree
comparison requires both --from and --to; it cannot be combined with a revision operand. The
comparison displays what differs between the trees, which can differ from a change’s own patch when
the two revisions are on different branches.
The diff title identifies the revision or from/to pair. For file navigation and folding, press V
and choose Color words:
- Press
fto choose a file from the file list; move with the arrows and pressEnter. - Use
[and]to move between files. - Press
hto fold the current file orlto unfold it. - Use Ctrl-Left or Ctrl-Right to fold or unfold all files, and
</>to scroll horizontally. - Search with
/,Enter, thenn/Nwhen the patch is too large to read linearly.
Folding and file selection change only the display. They do not stage files or narrow a mutation.
Esc closes the file list without changing the chosen file.
Change the diff format
Press V in a diff and choose its format. The query’s revision or from/to operands stay the same.
The startup flags provide the same formats; choose one flag at a time.
| Format | Startup option | Use it to see |
|---|---|---|
| Patch | No format flag | The patch using jj’s configured default rendering. |
| Stat | --stat | The amount of changed content per file. |
| Summary | --summary | Added, modified, and removed paths. |
| Types | --types | File types before and after the change. |
| Name only | --name-only | Changed paths without patch content. |
| Git | --git | A Git-format patch. |
| Color words | --color-words | Word-oriented changed content. |
For example, jk diff --from @- --to @ --stat summarizes that same comparison. File navigation
currently recognizes Color words headers. Git-format patches can display correctly while the file
picker says “No files”; file jumps and folding are unavailable for that format. Select Color words to
use file controls. Patch depends on jj’s configured rendering.
The advertised {/} hunk jumps and -/+ hunk folding do not work on ordinary Color words or Git
output: the parser requires both Color words file headers and Git-style hunk headers in the same
output. Use scrolling or search to review the content within a file. These are tracked as a
format-navigation defect.
Native diff startup does not accept fileset operands; use a captured :diff -r @ 'glob:src/**' query
for filtered output.
Follow a change through rewrites
Select the change in the log and press v. The evolution log shows earlier versions of that change,
which is useful after describe, rebase, squash, or another rewrite. This is the history of a
change’s versions; Operation Log records repository operations.
Use the displayed commit IDs to identify versions. To compare their patches, run
interdiff --from OLD --to NEW in command mode, replacing OLD and NEW with the exact revisions
you inspected. The result uses captured output with search and return controls; jk has no native
interdiff picker.
Verify the query and handle failures
Check the title and C history record if the output describes the wrong revision or workspace.
Cancel a selector with Esc; inspection does not need an undo. Ordinary jj inspection can snapshot
working-copy edits, so operation history may record that snapshot.
A missing or ambiguous revision, invalid template, or invalid fileset is reported by jj. Read the
retained diagnostics, correct the query, and retry. From captured command output, e reopens the
input. For native startup operands, quit and restart with the corrected arguments. If another
process rewrote the graph, refresh before choosing a new mutation target.
Watch the workflow
Replace a slow refresh and inspect a failure
Screenshots and terminal evidence
Read the terminal text
jk jj › @ wxuwosmn [email protected] 2026-01-01 12:00:00 405044d7 · │ Experiment with forecast caching ○ yxnvknzt [email protected] 2026-01-01 12:00:00 fd58c910 │ Configure request timeouts ○ nsrywxuo [email protected] 2026-01-01 12:00:00 d0fba287 │ Add the forecast endpoint ○ qzyownww [email protected] 2026-01-01 12:00:00 44448bc2 │ Document the forecast service ◆ zzzzzzzz root() 00000000 Refreshing… ? help H home L log r refresh enter open d diff v evolog s status ... q quit
Read the terminal text
jk jj @ wxuwosmn [email protected] 2026-01-01 12:00:00 405044d7 │ Experiment with forecast caching › ○ yxnvknzt [email protected] 2026-01-01 12:00:00 fd58c910 · │ Configure request timeouts ○ nsrywxuo [email protected] 2026-01-01 12:00:00 d0fba287 │ Add the forecast endpoint ○ qzyownww [email protected] 2026-01-01 12:00:00 44448bc2 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj @ wxuwosmn [email protected] 2026-01-01 12:00:00 405044d7 │ Experiment with forecast caching › ○ yxnvknzt [email protected] 2026-01-01 12:00:00 fd58c910 · │ Configure request timeouts ○ nsrywxuo [email protected] 2026-01-01 12:00:00 d0fba287 │ Add the forecast endpoint ○ qzyownww [email protected] 2026-01-01 12:00:00 44448bc2 │ Document the forecast service ◆ zzzzzzzz root() 00000000 Refresh failed: jj failed: … ? help H home L log r refresh enter open d diff ... q quit
Read the terminal text
jk Command 6 Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/forecast-demo.LTdbpS - Source: log refresh Status: exit 1 Duration: 10 ms Operation: none Summary: exit 1: fixture refresh failed Stdout: bytes: 0 lines: 0 truncated: no redacted: no <empty> Stderr: bytes: 23 lines: 1 truncated: no redacted: no fixture refresh failed ? help V options r refresh j/k line space page q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- manual-cancel-refresh-assertions.json
- manual-cancel-refresh-details.json
- manual-cancel-refresh-details.png
- manual-cancel-refresh-failure.json
- manual-cancel-refresh-failure.png
- manual-cancel-refresh-loading.json
- manual-cancel-refresh-loading.png
- manual-cancel-refresh-replaced.json
- manual-cancel-refresh-replaced.png
- manual-cancel-refresh.mp4
- manual-cancel-refresh.tape
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Other recorded forms and recovery paths (8)
Compare two revisions in every diff format
Screenshots and terminal evidence
Read the terminal text
jk jj diff --from main --to candidate --git
diff --git a/README.md b/README.md
index d5d13cadb6..9a77a7b2df 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,7 @@
# Forecast service
Reliable forecasts for every city.
+
+Requests time out after three seconds.
+
+Cache forecasts for two minutes.
diff --git a/config.json b/config.json
index f8aed8a9c3..ce5492e67d 100644
--- a/config.json
+++ b/config.json
@@ -1,4 +1,4 @@
{
"requestTimeoutMs": 3000,
- "cacheTtlSeconds": 60
+ "cacheTtlSeconds": 120
}
diff --git a/src/cache.js b/src/cache.js
index dee624489b..d2ecfb2838 100644
--- a/src/cache.js
+++ b/src/cache.js
@@ -1,7 +1,7 @@
export const cacheWindow1 = 1;
export const cacheWindow2 = 2;
export const cacheWindow3 = 3;
-export const cacheWindow4 = 4;
+export const cacheTtlSeconds = 120; // Keep forecasts fresh.
export const cacheWindow5 = 5;
export const cacheWindow6 = 6;
? help V options r refresh j/k line f files space page q quit
Read the terminal text
jk jj diff --from main --to candidate --color-words
› Modified regular file README.md: | 4 ++++ [file 1/4]
1 1: # Forecast service
2 2:
3 3: Reliable forecasts for every city.
4:
5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
Modified regular file src/cache.js:
1 1: export const cacheWindow1 = 1;
2 2: export const cacheWindow2 = 2;
3 3: export const cacheWindow3 = 3;
4 : export const cacheWindow4 = 4;
4: export const cacheTtlSeconds = 120; // Keep forecasts fresh.
5 5: export const cacheWindow5 = 5;
6 6: export const cacheWindow6 = 6;
7 7: export const cacheWindow7 = 7;
...
27 27: export const cacheWindow27 = 27;
28 28: export const cacheWindow28 = 28;
29 29: export const cacheWindow29 = 29;
30 : export const cacheWindow30 = 30;
30: export const cacheLimit = 256; // Bound memory usage.
31 31: export const cacheWindow31 = 31;
32 32: export const cacheWindow32 = 32;
33 33: export const cacheWindow33 = 33;
...
Added regular file src/forecast.js:
1: export function forecast(city) { return { city, temperature: 21 }; }
file 1/4 README.md f files [/] file { } hunk ? help
Read the terminal text
jk jj diff -r @
› Modified regular file README.md: | 2 ++ [file 1/3]
...
3 3: Reliable forecasts for every city.
4 4:
5 5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
Modified regular file src/cache.js:
1 1: export const cacheWindow1 = 1;
2 2: export const cacheWindow2 = 2;
3 3: export const cacheWindow3 = 3;
4 : export const cacheWindow4 = 4;
4: export const cacheTtlSeconds = 120; // Keep forecasts fresh.
5 5: export const cacheWindow5 = 5;
6 6: export const cacheWindow6 = 6;
7 7: export const cacheWindow7 = 7;
...
27 27: export const cacheWindow27 = 27;
28 28: export const cacheWindow28 = 28;
29 29: export const cacheWindow29 = 29;
30 : export const cacheWindow30 = 30;
30: export const cacheLimit = 256; // Bound memory usage.
31 31: export const cacheWindow31 = 31;
32 32: export const cacheWindow32 = 32;
33 33: export const cacheWindow33 = 33;
...
file 1/3 README.md f files [/] file { } hunk ? help
Read the terminal text
jk jj diff -r @ --color-words
› Modified regular file README.md: | 2 ++ [file 1/3]
...
3 3: Reliable forecasts for every city.
4 4:
5 5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
Modified regular file src/cache.js:
1 1: export const cacheWindow1 = 1;
2 2: export const cacheWindow2 = 2;
3 3: export const cacheWindow3 = 3;
4 : export const cacheWindow4 = 4;
4: export const cacheTtlSeconds = 120; // Keep forecasts fresh.
5 5: export const cacheWindow5 = 5;
6 6: export const cacheWindow6 = 6;
7 7: export const cacheWindow7 = 7;
...
27 27: export const cacheWindow27 = 27;
28 28: export const cacheWindow28 = 28;
29 29: export const cacheWindow29 = 29;
30 : export const cacheWindow30 = 30;
30: export const cacheLimit = 256; // Bound memory usage.
31 31: export const cacheWindow31 = 31;
32 32: export const cacheWindow32 = 32;
33 33: export const cacheWindow33 = 33;
...
file 1/3 README.md f files [/] file { } hunk ? help
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-diff-compare-color-words.json
- inspect-diff-compare-color-words.png
- inspect-diff-compare-range.json
- inspect-diff-compare-range.png
- inspect-diff-compare-revision.json
- inspect-diff-compare-revision.png
- inspect-diff-compare-root-color-words.json
- inspect-diff-compare-root-color-words.png
- inspect-diff-compare.mp4
- inspect-diff-compare.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Choose the right amount of diff detail
Screenshots and terminal evidence
Read the terminal text
jk jj diff -r @ --summary M README.md M config.json M src/cache.js ? help V options r refresh j/k line f files space page q quit
Read the terminal text
jk jj diff -r @ --stat README.md | 2 ++ config.json | 2 +- src/cache.js | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) ? help V options r refresh j/k line f files space page q quit
Read the terminal text
jk jj diff -r @ --types FF README.md FF config.json FF src/cache.js ? help V options r refresh j/k line f files space page q quit
Read the terminal text
jk jj diff -r @ --name-only README.md config.json src/cache.js ? help V options r refresh j/k line f files space page q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-diff-formats-names.json
- inspect-diff-formats-names.png
- inspect-diff-formats-stat.json
- inspect-diff-formats-stat.png
- inspect-diff-formats-summary.json
- inspect-diff-formats-summary.png
- inspect-diff-formats-types.json
- inspect-diff-formats-types.png
- inspect-diff-formats.mp4
- inspect-diff-formats.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Find files and hunks in a long diff
Screenshots and terminal evidence
Read the terminal text
jk jj diff -r @ --color-words
› Modified regular file README.md: | 2 ++ [file 1/3]
...
3 3: Reliable forecasts for every city.
4 4:
5 5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
Modified regular file src/cache.js:
1 1: export const cacheWindow1 = 1;
2 2: export const cacheWindow2 = 2;
3 3: export const cacheWindow3 = 3;
4 : export const cacheWindow4 = 4;
4: export const cacheTtlSeconds = 120; // Keep forecasts fresh.
5 5: export const cacheWindow5 = 5;
6 6: export const cacheWindow6 = 6;
7 7: export const cacheWindow7 = 7;
...
27 27: export const cacheWindow27 = 27;
28 28: export const cacheWindow28 = 28;
29 29: export const cacheWindow29 = 29;
30 : export const cacheWindow30 = 30;
30: export const cacheLimit = 256; // Bound memory usage.
31 31: export const cacheWindow31 = 31;
32 32: export const cacheWindow32 = 32;
33 33: export const cacheWindow33 = 33;
...
file 1/3 README.md f files [/] file { } hunk ? help
Read the terminal text
jk jj diff -r @ --color-words
› Modified regular file README.md: | 2 ++ [file 1/3]
...
3 3: Reliable forecasts for every city.
4 4:
5 5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
Modified regular file src
1 1: export const c Diff files
2 2: export const c
3 3: export const c > 1/3 README.md
4 : export const c 2/3 config.json
4: export const c 3/3 src/cache.js
5 5: export const c
6 6: export const c j/k or arrows move enter jump esc close
7 7: export const c
...
27 27: export const cacheWindow27 = 27;
28 28: export const cacheWindow28 = 28;
29 29: export const cacheWindow29 = 29;
30 : export const cacheWindow30 = 30;
30: export const cacheLimit = 256; // Bound memory usage.
31 31: export const cacheWindow31 = 31;
32 32: export const cacheWindow32 = 32;
33 33: export const cacheWindow33 = 33;
...
Read the terminal text
jk jj diff -r @ --color-words
Modified regular file README.md:
...
3 3: Reliable forecasts for every city.
4 4:
5 5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
› Modified regular file src/cache.js: | 4 ++-- [file 3/3]
/cache 1/19 n next N previous
Read the terminal text
jk jj diff -r @ --color-words
Modified regular file README.md:
...
3 3: Reliable forecasts for every city.
4 4:
5 5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
› Modified regular file src/cache.js: | 4 ++-- [file 3/3]
1 1: export const cacheWindow1 = 1;
2 2: export const cacheWindow2 = 2;
3 3: export const cacheWindow3 = 3;
4 : export const cacheWindow4 = 4;
4: export const cacheTtlSeconds = 120; // Keep forecasts fresh.
5 5: export const cacheWindow5 = 5;
6 6: export const cacheWindow6 = 6;
7 7: export const cacheWindow7 = 7;
...
27 27: export const cacheWindow27 = 27;
28 28: export const cacheWindow28 = 28;
29 29: export const cacheWindow29 = 29;
30 : export const cacheWindow30 = 30;
30: export const cacheLimit = 256; // Bound memory usage.
31 31: export const cacheWindow31 = 31;
32 32: export const cacheWindow32 = 32;
33 33: export const cacheWindow33 = 33;
...
/cache 1/19 n next N previous
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (46 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-diff-navigate-files.json
- inspect-diff-navigate-files.png
- inspect-diff-navigate-folded-file.json
- inspect-diff-navigate-folded-file.png
- inspect-diff-navigate-patch.json
- inspect-diff-navigate-patch.png
- inspect-diff-navigate-refreshed.json
- inspect-diff-navigate-refreshed.png
- inspect-diff-navigate.mp4
- inspect-diff-navigate.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Open history hidden by the graph
Screenshots and terminal evidence
Read the terminal text
jk jj log -r (::9fe71062) | 9fe71062 @ ooknonrr [email protected] 2026-01-01 12:00:00 candidate 9fe71062 │ Experiment with forecast caching › ○ ynpyvuzw [email protected] 2026-01-01 12:00:00 33b70592 · │ Configure request timeouts ○ lmmoyqqv [email protected] 2026-01-01 12:00:00 fdd411e7 │ Add the forecast endpoint ○ vkyykrls [email protected] 2026-01-01 12:00:00 main 1c7678be │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/inspection.y Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/inspec Status: success Stdout: ooknonrr [email protected] 2026-01-01 12:00:00 candidate 9fe71062 Experiment with forecast caching ynpyvuzw [email protected] 2026-01-01 12:00:00 33b70592 Configure request timeouts lmmoyqqv [email protected] 2026-01-01 12:00:00 fdd411e7 Add the forecast endpoint vkyykrls [email protected] 2026-01-01 12:00:00 main 1c7678be Document the forecast service zzzzzzzz root() 00000000 Stderr: <empty> Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-elision-command-revset.json
- inspect-elision-command-revset.png
- inspect-elision-expanded.json
- inspect-elision-expanded.png
- inspect-elision-hidden.json
- inspect-elision-hidden.png
- inspect-elision.mp4
- inspect-elision.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Compare versions of a change
Screenshots and terminal evidence
Read the terminal text
jk jj evolog -r nlswzynm @ nlswzynm [email protected] 2026-01-01 12:00:00 candidate 068eab96 │ Experiment with forecast caching │ -- operation 5216441925dc describe commit a813809c0659d1c90d76cd7b9826228c21e467c3 ○ nlswzynm/1 [email protected] 2026-01-01 12:00:00 a813809c (hidden) │ Try a longer cache window │ -- operation cfd7f6a7c3a4 snapshot working copy ○ nlswzynm/2 [email protected] 2026-01-01 12:00:00 85246d38 (hidden) (empty) Try a longer cache window -- operation 166a01bbf3f9 new empty commit ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/inspection.b Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/inspec Status: exit 1 Stdout: <empty> Stderr: Error: Revision `missing-review` doesn't exist Actions: e edit/retry command : run another jj command ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/inspection.b
Command: jj --no-pager --color always --repository /home/runner/work/jk/jk/target/manual-fixtures/inspec
Status: success
Stdout:
Modified commit description:
1 : Configure request timeouts
1: Experiment with forecast caching
Modified regular file README.md:
...
3 3: Reliable forecasts for every city.
4 4:
5 5: Requests time out after three seconds.
6:
7: Cache forecasts for two minutes.
Modified regular file config.json:
1 1: {
2 2: "requestTimeoutMs": 3000,
3 3: "cacheTtlSeconds": 60120
4 4: }
Modified regular file src/cache.js:
1 1: export const cacheWindow1 = 1;
2 2: export const cacheWindow2 = 2;
3 3: export const cacheWindow3 = 3;
4 : export const cacheWindow4 = 4;
4: export const cacheTtlSeconds = 120; // Keep forecasts fresh.
5 5: export const cacheWindow5 = 5;
6 6: export const cacheWindow6 = 6;
7 7: export const cacheWindow7 = 7;
...
27 27: export const cacheWindow27 = 27;
28 28: export const cacheWindow28 = 28;
29 29: export const cacheWindow29 = 29;
30 : export const cacheWindow30 = 30;
30: export const cacheLimit = 256; // Bound memory usage.
? help V options r refresh j/k line space page q quit
Read the terminal text
jk Command History › ok command mode command : jj interdiff --from @- --to @ Modified commit description: fail command mode command : jj interdiff --from missing-review --to @ exit 1: Error: Revision `mis ok command mode command : jj evolog -r @ --no-graph -n 3 nlswzynm [email protected] 2026-01-0 ok log evolog jj evolog -r nlswzynm @ nlswzynm [email protected] 2026-01-01 12:00: ok log load jj stderr: Hint: Use `jj -h` for a list of available commands. ok log load jj stderr: Hint: Use `jj -h` for a list of available commands. ? help enter details j/k move space page r refresh o operation y copy Esc back q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-history-evolog.json
- inspect-history-evolog.png
- inspect-history-failure.json
- inspect-history-failure.png
- inspect-history-history.json
- inspect-history-history.png
- inspect-history-interdiff.json
- inspect-history-interdiff.png
- inspect-history.mp4
- inspect-history.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Choose the right amount of log detail
Screenshots and terminal evidence
Read the terminal text
jk jj log › @ vwyvytzl [email protected] 2026-01-01 12:00:00 candidate 4872f015 · │ Experiment with forecast caching ○ xylrswsk [email protected] 2026-01-01 12:00:00 9876d39d │ Configure request timeouts ○ mtulkpvs [email protected] 2026-01-01 12:00:00 ca8162b8 │ Add the forecast endpoint ○ mvpwrorx [email protected] 2026-01-01 12:00:00 main 5d3a68d8 │ Document the forecast service ◆ zzzzzzzz root() 00000000 Log template > configured jj configured template comfortable builtin_log_comfortable compact builtin_log_compact full description builtin_log_compact_full_description detailed builtin_log_detailed oneline builtin_log_oneline redacted builtin_log_redacted j/k or arrows move enter apply esc cancel
Read the terminal text
jk jj log -T builtin_log_compact_full_description › @ vwyvytzl [email protected] 2026-01-01 12:00:00 candidate 4872f015 · │ Experiment with forecast caching · │ ○ xylrswsk [email protected] 2026-01-01 12:00:00 9876d39d │ Configure request timeouts │ ○ mtulkpvs [email protected] 2026-01-01 12:00:00 ca8162b8 │ Add the forecast endpoint │ ○ mvpwrorx [email protected] 2026-01-01 12:00:00 main 5d3a68d8 │ Document the forecast service │ ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj log -T builtin_log_oneline › @ vwyvytzl alex 2026-01-01 12:00:00 candidate 4872f015 Experiment with forecast caching ○ xylrswsk alex 2026-01-01 12:00:00 9876d39d Configure request timeouts ○ mtulkpvs alex 2026-01-01 12:00:00 ca8162b8 Add the forecast endpoint ○ mvpwrorx alex 2026-01-01 12:00:00 main 5d3a68d8 Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj log › @ vwyvytzl [email protected] 2026-01-01 12:00:00 candidate 4872f015 · │ Experiment with forecast caching ○ xylrswsk [email protected] 2026-01-01 12:00:00 9876d39d │ Configure request timeouts ○ mtulkpvs [email protected] 2026-01-01 12:00:00 ca8162b8 │ Add the forecast endpoint ○ mvpwrorx [email protected] 2026-01-01 12:00:00 main 5d3a68d8 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (46 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-log-options-configured.json
- inspect-log-options-configured.png
- inspect-log-options-full-description.json
- inspect-log-options-full-description.png
- inspect-log-options-oneline.json
- inspect-log-options-oneline.png
- inspect-log-options-selector.json
- inspect-log-options-selector.png
- inspect-log-options.mp4
- inspect-log-options.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-manual-evidence.py
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_evidence.py
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Find a change and inspect working-copy status
Screenshots and terminal evidence
Read the terminal text
jk jj › @ kquxqokw [email protected] 2026-01-01 12:00:00 candidate 4939c374 · │ Experiment with forecast caching ○ xrrsnplp [email protected] 2026-01-01 12:00:00 c10ab42f │ Configure request timeouts ○ qrpxrtmr [email protected] 2026-01-01 12:00:00 859cd47f │ Add the forecast endpoint ○ ryvkzmmp [email protected] 2026-01-01 12:00:00 main c28732e7 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj show kquxqokw Commit ID: 4939c3743fd2711a1bcd13b5f38e6f5fd1d505a1 Change ID: kquxqokwtuytprwzruwvmllpnroopnox Bookmarks: candidate candidate@git Author : Alex Developer <[email protected]> (2026-01-01 12:00:00) Committer: Alex Developer <[email protected]> (2026-01-01 12:00:00) Experiment with forecast caching Modified regular file README.md: ... 3 3: Reliable forecasts for every city. 4 4: 5 5: Requests time out after three seconds. 6: 7: Cache forecasts for two minutes. Modified regular file config.json: 1 1: { 2 2: "requestTimeoutMs": 3000, 3 3: "cacheTtlSeconds": 60120 4 4: } Modified regular file src/cache.js: 1 1: export const cacheWindow1 = 1; 2 2: export const cacheWindow2 = 2; 3 3: export const cacheWindow3 = 3; 4 : export const cacheWindow4 = 4; 4: export const cacheTtlSeconds = 120; // Keep forecasts fresh. 5 5: export const cacheWindow5 = 5; 6 6: export const cacheWindow6 = 6; 7 7: export const cacheWindow7 = 7; ... 27 27: export const cacheWindow27 = 27; 28 28: export const cacheWindow28 = 28; 29 29: export const cacheWindow29 = 29; 30 : export const cacheWindow30 = 30; ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj status Working copy changes: M README.md M config.json M src/cache.js Working copy (@) : kquxqokw 4939c374 candidate | Experiment with forecast caching Parent commit (@-): xrrsnplp c10ab42f Configure request timeouts ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj @ kquxqokw [email protected] 2026-01-01 12:00:00 candidate 4939c374 │ Experiment with forecast caching › ○ xrrsnplp [email protected] 2026-01-01 12:00:00 c10ab42f · │ Configure request timeouts ○ qrpxrtmr [email protected] 2026-01-01 12:00:00 859cd47f │ Add the forecast endpoint ○ ryvkzmmp [email protected] 2026-01-01 12:00:00 main c28732e7 │ Document the forecast service ◆ zzzzzzzz root() 00000000 ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-orient-log.json
- inspect-orient-log.png
- inspect-orient-returned.json
- inspect-orient-returned.png
- inspect-orient-show.json
- inspect-orient-show.png
- inspect-orient-status.json
- inspect-orient-status.png
- inspect-orient.mp4
- inspect-orient.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json
Open a specific view from your shell
Screenshots and terminal evidence
Read the terminal text
jk jj log -T builtin_log_oneline › @ wvplrrrn alex 2026-01-01 12:00:00 candidate bdca6a22 Experiment with forecast caching ○ wlqzxwll alex 2026-01-01 12:00:00 552d4ed7 Configure request timeouts ○ zqnukxpo alex 2026-01-01 12:00:00 2dcd2df5 Add the forecast endpoint ? help H home L log r refresh enter open d diff v evolog s status space mark o ops ... q quit
Read the terminal text
jk jj show @ @- Commit ID: bdca6a22123e432816f52792315428136370f619 Change ID: wvplrrrnvqpvtxpvpxxpplovqzmvtqsu Bookmarks: candidate candidate@git Author : Alex Developer <[email protected]> (2026-01-01 12:00:00) Committer: Alex Developer <[email protected]> (2026-01-01 12:00:00) Experiment with forecast caching Modified regular file README.md: ... 3 3: Reliable forecasts for every city. 4 4: 5 5: Requests time out after three seconds. 6: 7: Cache forecasts for two minutes. Modified regular file config.json: 1 1: { 2 2: "requestTimeoutMs": 3000, 3 3: "cacheTtlSeconds": 60120 4 4: } Modified regular file src/cache.js: 1 1: export const cacheWindow1 = 1; 2 2: export const cacheWindow2 = 2; 3 3: export const cacheWindow3 = 3; 4 : export const cacheWindow4 = 4; 4: export const cacheTtlSeconds = 120; // Keep forecasts fresh. 5 5: export const cacheWindow5 = 5; 6 6: export const cacheWindow6 = 6; 7 7: export const cacheWindow7 = 7; ... 27 27: export const cacheWindow27 = 27; 28 28: export const cacheWindow28 = 28; 29 29: export const cacheWindow29 = 29; 30 : export const cacheWindow30 = 30; ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj status README.md config.json Working copy changes: M README.md M config.json Working copy (@) : wvplrrrn bdca6a22 candidate | Experiment with forecast caching Parent commit (@-): wlqzxwll 552d4ed7 Configure request timeouts ? help V options r refresh j/k line space page q quit
Read the terminal text
jk jj status Working copy changes: M README.md M config.json M src/cache.js Working copy (@) : wvplrrrn bdca6a22 candidate | Experiment with forecast caching Parent commit (@-): wlqzxwll 552d4ed7 Configure request timeouts ? help V options r refresh j/k line space page q quit
Binary, tool versions, and file hashes · Accepted pixel, text/style, and video review · action-diagnostics/bin/dependencies.log · action-diagnostics/tape-1.log · Outcome assertions 1
All retained evidence (44 files)
Includes source tapes, original helper scripts, fixture details, terminal states, and logs.
- action-diagnostics/bin/dependencies.log
- action-diagnostics/manifest.json
- action-diagnostics/tape-1.log
- build-provenance.json
- capture.tape
- checkpoint-summary.json
- fixture-env.sh
- fixture.json
- inspect-root-forms-custom-log.json
- inspect-root-forms-custom-log.png
- inspect-root-forms-fileset-status.json
- inspect-root-forms-fileset-status.png
- inspect-root-forms-full-status.json
- inspect-root-forms-full-status.png
- inspect-root-forms-multi-show.json
- inspect-root-forms-multi-show.png
- inspect-root-forms.mp4
- inspect-root-forms.tape
- inspection-assertions.json
- source-scripts/abandon-dialog-fixture.sh
- source-scripts/action-menu-demo-fixture.sh
- source-scripts/betamax-cancellable-jj.sh
- source-scripts/betamax-fixture-env.sh
- source-scripts/betamax-fixture.sh
- source-scripts/betamax-setup.sh
- source-scripts/check-manual-coverage.py
- source-scripts/check-refresh-proof.py
- source-scripts/check-run-options-proof.py
- source-scripts/manual-assert.sh
- source-scripts/manual-audit-assert.py
- source-scripts/manual-fixture-jj.sh
- source-scripts/manual-fixture.sh
- source-scripts/manual-recordings.py
- source-scripts/package-release-archive.sh
- source-scripts/prepare-preview.sh
- source-scripts/reflow-rust-comments.py
- source-scripts/refs-remotes-demo-fixture.sh
- source-scripts/run-betamax.sh
- source-scripts/shared-selector-demo-fixture.sh
- source-scripts/test_manual_recordings.py
- source-scripts/workflows-demo-fixture.sh
- source-scripts/workspace-lifecycle-demo-fixture.sh
- source.tape
- accepted-review.json