Skip to content

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:

  1. Press f to choose a file from the file list; move with the arrows and press Enter.
  2. Use [ and ] to move between files.
  3. Press h to fold the current file or l to unfold it.
  4. Use Ctrl-Left or Ctrl-Right to fold or unfold all files, and </> to scroll horizontally.
  5. Search with /, Enter, then n/N when 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.

FormatStartup optionUse it to see
PatchNo format flagThe patch using jj’s configured default rendering.
Stat--statThe amount of changed content per file.
Summary--summaryAdded, modified, and removed paths.
Types--typesFile types before and after the change.
Name only--name-onlyChanged paths without patch content.
Git--gitA Git-format patch.
Color words--color-wordsWord-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

Replace a slow refresh and inspect a failure · 0:18 · MP4
Screenshots and terminal evidence
Replace a slow refresh and inspect a failure: manual cancel refresh loading
manual cancel refresh loading · Terminal state and styles (JSON)
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
Replace a slow refresh and inspect a failure: manual cancel refresh replaced
manual cancel refresh replaced · Terminal state and styles (JSON)
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
Replace a slow refresh and inspect a failure: manual cancel refresh failure
manual cancel refresh failure · Terminal state and styles (JSON)
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
Replace a slow refresh and inspect a failure: manual cancel refresh details
manual cancel refresh details · Terminal state and styles (JSON)
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.

Other recorded forms and recovery paths (8)

Compare two revisions in every diff format

Compare two revisions in every diff format · 0:28 · MP4
Screenshots and terminal evidence
Compare two revisions in every diff format: inspect diff compare range
inspect diff compare range · Terminal state and styles (JSON)
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
Compare two revisions in every diff format: inspect diff compare color words
inspect diff compare color words · Terminal state and styles (JSON)
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
Compare two revisions in every diff format: inspect diff compare revision
inspect diff compare revision · Terminal state and styles (JSON)
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
Compare two revisions in every diff format: inspect diff compare root color words
inspect diff compare root color words · Terminal state and styles (JSON)
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.

Choose the right amount of diff detail

Choose the right amount of diff detail · 0:17 · MP4
Screenshots and terminal evidence
Choose the right amount of diff detail: inspect diff formats summary
inspect diff formats summary · Terminal state and styles (JSON)
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
Choose the right amount of diff detail: inspect diff formats stat
inspect diff formats stat · Terminal state and styles (JSON)
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
Choose the right amount of diff detail: inspect diff formats types
inspect diff formats types · Terminal state and styles (JSON)
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
Choose the right amount of diff detail: inspect diff formats names
inspect diff formats names · Terminal state and styles (JSON)
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.

Find files and hunks in a long diff

Find files and hunks in a long diff · 0:26 · MP4
Screenshots and terminal evidence
Find files and hunks in a long diff: inspect diff navigate patch
inspect diff navigate patch · Terminal state and styles (JSON)
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
Find files and hunks in a long diff: inspect diff navigate files
inspect diff navigate files · Terminal state and styles (JSON)
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;
       ...
Find files and hunks in a long diff: inspect diff navigate folded file
inspect diff navigate folded file · Terminal state and styles (JSON)
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
Find files and hunks in a long diff: inspect diff navigate refreshed
inspect diff navigate refreshed · Terminal state and styles (JSON)
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.

Open history hidden by the graph

Open history hidden by the graph · 0:19 · MP4
Screenshots and terminal evidence
Open history hidden by the graph: inspect elision hidden
inspect elision hidden · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  ooknonrr [email protected] 2026-01-01 12:00:00 candidate 9fe71062
·  │  Experiment with forecast caching
   ~































? help  H home  L log  r refresh  enter open  d diff  v evolog  s status  space mark  o ops  ...  q quit
Open history hidden by the graph: inspect elision expanded
inspect elision expanded · Terminal state and styles (JSON)
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
Open history hidden by the graph: inspect elision command revset
inspect elision command revset · Terminal state and styles (JSON)
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.

Compare versions of a change

Compare versions of a change · 0:19 · MP4
Screenshots and terminal evidence
Compare versions of a change: inspect history evolog
inspect history evolog · Terminal state and styles (JSON)
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
Compare versions of a change: inspect history failure
inspect history failure · Terminal state and styles (JSON)
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
Compare versions of a change: inspect history interdiff
inspect history interdiff · Terminal state and styles (JSON)
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
Compare versions of a change: inspect history history
inspect history history · Terminal state and styles (JSON)
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.

Choose the right amount of log detail

Choose the right amount of log detail · 0:27 · MP4
Screenshots and terminal evidence
Choose the right amount of log detail: inspect log options selector
inspect log options selector · Terminal state and styles (JSON)
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
Choose the right amount of log detail: inspect log options full description
inspect log options full description · Terminal state and styles (JSON)
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
Choose the right amount of log detail: inspect log options oneline
inspect log options oneline · Terminal state and styles (JSON)
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
Choose the right amount of log detail: inspect log options configured
inspect log options configured · Terminal state and styles (JSON)
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.

Find a change and inspect working-copy status

Find a change and inspect working-copy status · 0:24 · MP4
Screenshots and terminal evidence
Find a change and inspect working-copy status: inspect orient log
inspect orient log · Terminal state and styles (JSON)
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
Find a change and inspect working-copy status: inspect orient show
inspect orient show · Terminal state and styles (JSON)
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
Find a change and inspect working-copy status: inspect orient status
inspect orient status · Terminal state and styles (JSON)
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
Find a change and inspect working-copy status: inspect orient returned
inspect orient returned · Terminal state and styles (JSON)
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.

Open a specific view from your shell

Open a specific view from your shell · 0:18 · MP4
Screenshots and terminal evidence
Open a specific view from your shell: inspect root forms custom log
inspect root forms custom log · Terminal state and styles (JSON)
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
Open a specific view from your shell: inspect root forms multi show
inspect root forms multi show · Terminal state and styles (JSON)
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
Open a specific view from your shell: inspect root forms fileset status
inspect root forms fileset status · Terminal state and styles (JSON)
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
Open a specific view from your shell: inspect root forms full status
inspect root forms full status · Terminal state and styles (JSON)
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.