Skip to content

jk manual

Start with a repository

Open jk, read the graph, choose revisions, and understand when an action changes history.

Open a jj working directory with jk. Use jk log when you want the log even if your jj configuration has a different default command.

jk
jk log
jk -R /path/to/repository log -n 30

The examples use a jk 0.3.0 source checkout with jj 0.45.1. Check jk --version and jj --version when a key or command differs from a recording. Use the command reference to check whether a command runs natively, through captured command mode, or in a terminal outside jk.

Read the graph before changing it

Start in a repository with a working-copy change and some existing history. jj owns the changes, bookmarks, operations, and workspace metadata; jk renders jj output and adds navigation and actions. There is no staging area to prepare before editing or reshaping changes.

Three different objects matter when choosing an action:

  • Working copy (@) is the change associated with this workspace’s files.
  • Cursor is the revision you are looking at. Moving it does not edit that revision.
  • Marks are an ordered list of changes you choose with Space. An action decides whether those marks are parents, sources, or invalid input.

Move with j/k or the arrow keys. Press g/G for the first or last row, and Page Up/Down to move through a larger graph. Press Space to mark or unmark a change; c clears all marks. Mark order matters when you create a change with multiple parents or choose several squash sources.

Press Enter to inspect the revision under the cursor. Return with Backspace. d opens its diff, s opens workspace status, and v opens its evolution log. Inspection views do not have the log’s revision action menu.

A normal log load or refresh lets jj snapshot working-copy files. Looking at the graph can therefore record edits made outside jk, just as an ordinary jj log can. Moving the cursor, marking revisions, and opening a confirmation do not themselves apply a history rewrite.

Find a control

Press ? for the active view’s help. The keys in the footer belong to the active view or dialog; uppercase and lowercase keys have different meanings. For example, r refreshes the log, R starts rebase, and a r means press a to open the action menu, then r to choose Restore.

From the log, a opens the action menu. Move with j/k and press Enter, or press the key shown beside an action. Esc closes the menu. The menu states whether an action runs immediately or opens a confirmation. New, Edit, Undo, Redo, and abandonment of an empty change run immediately.

From the log, B opens bookmarks, W opens workspaces, o opens the operation log, and C opens Command History. H switches to the configured default view; L switches to explicit log output. q quits jk. Use Backspace to return from an inspection view without quitting.

Check a preview before confirming

Rebase, squash, restore, bookmark mutations, and remote operations show a command preview. Check the repository, operands, scope, and exact command. Enter executes it; Esc cancels. Arrow keys and Page Up/Down scroll a long preview. y copies its command line; it does not confirm these previews. Abandon and workspace actions have their own confirmation controls.

After execution, inspect the result in the graph or relevant list. Open C to inspect the actual argv, diagnostics, and exit status. A history record can link to the resulting jj operation with o. A success message reports the command’s exit status; check the affected changes or files to verify its result.

If a preview no longer matches the work you want to do, cancel and select its operands again. If an executed command changed the wrong thing, use operation recovery after checking what the operation changed.

Choose a readable display

The log and normal diff views retain jj’s colors and rendered output. Press V in the log to change its template, or in a diff to change its format. These choices change presentation, not history.

Dialogs detect the terminal’s light or dark background at startup. Override the detection when the surface is hard to read:

jk --dialog-theme light
jk --dialog-theme dark

The setting affects jk dialogs; it does not replace jj’s graph colors or your terminal background. Enlarge the terminal if a confirmation says it cannot show its decision controls. Do not infer that an off-screen command has run.

Recover from startup or refresh failure

Use jk -R /path/to/workspace log to make the repository explicit. In this source version with jj 0.45.1, automatic child-workspace selection fails in a repository container without its own working copy. The No working copy. status is not recognized, so opening the container does not select a usable child workspace. This is a startup defect.

If the container has a child working directory named default, start it explicitly:

jk -R default
jk -R default workspaces

Replace default with the actual workspace directory, or change into that directory before starting jk. Verify the workspace path and working-copy change before running a mutation.

Press r to refresh after an external edit. A log refresh runs in the background; you can keep moving through the last usable graph. Another r supersedes the previous refresh. A failure leaves the last usable graph visible and records its diagnostics in Command History. Fix the reported jj or repository problem and refresh again; do not interpret retained rows as a fresh successful load.

Watch the workflow

Inspect automatic dialog appearance

Inspect automatic dialog appearance · 0:12 · MP4
Screenshots and terminal evidence
Inspect automatic dialog appearance: manual dialog auto actions
manual dialog auto actions · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  vlqyxpyt [email protected] 2026-01-01 12:00:00 c2ac394f
·  │  Experiment with forecast caching
   ○  nmkrkywu [email protected] 2026-01-01 12:00:00 81561008
   │  Configure request timeouts
   ○  pqxqoyrn [email protected] 2026-01-01 12:00:00 92b85053
   │  Add the forecast endpoint
   ○  srwxsxuk [email protected] 2026-01-01 12:00:00 aabc569e
   │  Document the forecast service
   ◆  zzzzzzzz root() 00000000

      Actions

      Change actions:
      > m  Describe revision  local rewrite · enter saves
        n  New change         local rewrite · runs now
        e  Edit change        local rewrite · runs now
        s  Squash revisions   local rewrite · preview
        a  Abandon revision   destructive · checks first
        r  Restore all paths  destructive · preview

      History and recovery:
        u  Undo               local rewrite · runs now
        U  Redo               local rewrite · runs now

      Safety cues show whether actions preview, save, or run now; inspection views stay read-only.
      j/k or arrows move   enter open   action key select   esc close
Inspect automatic dialog appearance: manual dialog auto description
manual dialog auto description · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  vlqyxpyt [email protected] 2026-01-01 12:00:00 c2ac394f
·  │  Experiment with forecast caching
   ○  nmkrkywu [email protected] 2026-01-01 12:00:00 81561008
   │  Configure request timeouts
   ○  pqxqoyrn [email protected] 2026-01-01 12:00:00 92b85053
   │  Add the forecast endpoint
   ○  srwxsxuk [email protected] 2026-01-01 12:00:00 aabc569e
   │  Document the forecast service
   ◆  zzzzzzzz root() 00000000





             Describe revision
             Revision: vlqyxpyt

             Experiment with forecast caching


             Enter save · Esc cancel · Ctrl-j newline · Ctrl-u clear · arrows move
Inspect automatic dialog appearance: manual dialog auto help
manual dialog auto help · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  vlqyxpyt [email protected] 2026-01-01 12:00:00 c2ac394f
·  │  Experiment with forecast caching
   ○  nmkrkywu [email protected] 2026-01-01 12:00:00 81561008
   │  Configure request timeouts
   ○  pqxqoyrn [email protected] 2026-01-01 12:00:00 92b85053
   │  Add the forecast endpoint
   ○  srwxs  Help
   │  Docum
   ◆  zzzzz  Open and inspect:
               enter         jj show                     d             jj diff
               v             jj evolog                   s             jj status
               V             View options                H / L         jj log
             Move and find:
               ↑/↓, j/k      Move selection              Ctrl-j/k      Scroll line
               PgDn, Ctrl-f  Page down                   PgUp, Ctrl-b  Page up
               Home, g       Jump to top                 End, G        Jump to bottom
               →, l          Expand change               ←, h          Collapse change
             Change actions:
               a             Open action menu            a m           jj describe
               a n           jj new                      a e           jj edit
               R             jj rebase                   a s           jj squash
               a a           jj abandon                  a r           jj restore
               space         Mark revision               c             Clear marks
             History and recovery:
               o             jj op log                   a u           jj undo
               a U           jj redo                     C             Open command history
             Session:
               :             jj command                  !             Run external command
               r             Refresh                     ?, Esc        Close help
               q             Quit / exit

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 (4)

Review a preview with dark dialogs

Review a preview with dark dialogs · 0:12 · MP4
Screenshots and terminal evidence
Review a preview with dark dialogs: manual dialog dark actions
manual dialog dark actions · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  nzrrquty [email protected] 2026-01-01 12:00:00 22340ee9
·  │  Experiment with forecast caching
   ○  mmqyqqtq [email protected] 2026-01-01 12:00:00 f67b5b78
   │  Configure request timeouts
   ○  oxmzsxts [email protected] 2026-01-01 12:00:00 92b946db
   │  Add the forecast endpoint
   ○  xswpoqkn [email protected] 2026-01-01 12:00:00 3de7c15b
   │  Document the forecast service
   ◆  zzzzzzzz root() 00000000

                Actions

                Change actions:
                > m  Describe revision  enter saves
                  n  New change  runs now
                  e  Edit change  runs now
                  s  Squash revisions  preview
                  a  Abandon revision  checks first
                  r  Restore all paths  destructive

                History and recovery:
                  u  Undo  runs now
                  U  Redo  runs now

                enter open   key select   esc close
Review a preview with dark dialogs: manual dialog dark description
manual dialog dark description · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  nzrrquty [email protected] 2026-01-01 12:00:00 22340ee9
·  │  Experiment with forecast caching
   ○  mmqyqqtq [email protected] 2026-01-01 12:00:00 f67b5b78
   │  Configure request timeouts
   ○  oxmzsxts [email protected] 2026-01-01 12:00:00 92b946db
   │  Add the forecast endpoint
   ○  xswpoqkn [email protected] 2026-01-01 12:00:00 3de7c15b
   │  Document the forecast service
   ◆  zzzzzzzz root() 00000000





 Describe revision
 Revision: nzrrquty

 Experiment with forecast caching


 Enter save · Esc cancel · Ctrl-j newline
Review a preview with dark dialogs: manual dialog dark help
manual dialog dark help · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  nzrrquty [email protected] 2026-01-01 12:00:00 22340ee9
·  │  Experiment with forecast caching
   ○  mmqyqqtq [email protected] 2026-01-01 12:00:00 f67b5b78
   │  Configure request timeouts
   ○  oxmzsxts [email protected] 2026-01-01 12:00:00 92b946db
   │  Add the forecast endpoint
   ○  xswpoqkn [email protected] 2026-01-01 12:00:00 3de7c15b
   │  Document the forecast service
   ◆  zzzzzzzz root() 00000000

               Help

               Open and inspect:
                 enter         jj show
                 d             jj diff
                 v             jj evolog
                 s             jj status
                 V             View options
                 H / L         jj log
               Move and find:
                 ↑/↓, j/k      Move selection
                 Ctrl-j/k      Scroll line
                 PgDn, Ctrl-f  Page down
                 PgUp, Ctrl-b  Page up
               showing lines 1-12 of 38  more below
                 j/k scroll

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.

Review a preview with light dialogs

Review a preview with light dialogs · 0:12 · MP4
Screenshots and terminal evidence
Review a preview with light dialogs: manual dialog light actions
manual dialog light actions · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  lvrrkult [email protected] 2026-01-01 12:00:00 1e82dd47
·  │  Experiment with forecast caching
   ○  votkpypp [email protected] 2026-01-01 12:00:00 94d947b3
   │  Configure request timeouts
   ○  yonuywys [email protected] 2026-01-01 12:00:00 618b7d66
   │  Add the forecast endpoint
   ○  tpxnnzvz [email protected] 2026-01-01 12:00:00 30c8b116
   │  Document the forecast service
   ◆  zzzzzzzz root() 00000000

      Actions

      Change actions:
      > m  Describe revision  local rewrite · enter saves
        n  New change         local rewrite · runs now
        e  Edit change        local rewrite · runs now
        s  Squash revisions   local rewrite · preview
        a  Abandon revision   destructive · checks first
        r  Restore all paths  destructive · preview

      History and recovery:
        u  Undo               local rewrite · runs now
        U  Redo               local rewrite · runs now

      Safety cues show whether actions preview, save, or run now; inspection views stay read-only.
      j/k or arrows move   enter open   action key select   esc close
Review a preview with light dialogs: manual dialog light description
manual dialog light description · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  lvrrkult [email protected] 2026-01-01 12:00:00 1e82dd47
·  │  Experiment with forecast caching
   ○  votkpypp [email protected] 2026-01-01 12:00:00 94d947b3
   │  Configure request timeouts
   ○  yonuywys [email protected] 2026-01-01 12:00:00 618b7d66
   │  Add the forecast endpoint
   ○  tpxnnzvz [email protected] 2026-01-01 12:00:00 30c8b116
   │  Document the forecast service
   ◆  zzzzzzzz root() 00000000





             Describe revision
             Revision: lvrrkult

             Experiment with forecast caching


             Enter save · Esc cancel · Ctrl-j newline · Ctrl-u clear · arrows move
Review a preview with light dialogs: manual dialog light help
manual dialog light help · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  lvrrkult [email protected] 2026-01-01 12:00:00 1e82dd47
·  │  Experiment with forecast caching
   ○  votkpypp [email protected] 2026-01-01 12:00:00 94d947b3
   │  Configure request timeouts
   ○  yonuywys [email protected] 2026-01-01 12:00:00 618b7d66
   │  Add the forecast endpoint
   ○  tpxnn  Help
   │  Docum
   ◆  zzzzz  Open and inspect:
               enter         jj show                     d             jj diff
               v             jj evolog                   s             jj status
               V             View options                H / L         jj log
             Move and find:
               ↑/↓, j/k      Move selection              Ctrl-j/k      Scroll line
               PgDn, Ctrl-f  Page down                   PgUp, Ctrl-b  Page up
               Home, g       Jump to top                 End, G        Jump to bottom
               →, l          Expand change               ←, h          Collapse change
             Change actions:
               a             Open action menu            a m           jj describe
               a n           jj new                      a e           jj edit
               R             jj rebase                   a s           jj squash
               a a           jj abandon                  a r           jj restore
               space         Mark revision               c             Clear marks
             History and recovery:
               o             jj op log                   a u           jj undo
               a U           jj redo                     C             Open command history
             Session:
               :             jj command                  !             Run external command
               r             Refresh                     ?, Esc        Close help
               q             Quit / exit

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.

Recover startup from a repository container

Recover startup from a repository container · 0:20 · MP4
Screenshots and terminal evidence
Recover startup from a repository container: startup container missing
startup container missing · Terminal state and styles (JSON)
Read the terminal text
jk jj status
No working copy.








































? help  V options  r refresh  j/k line  space page  q quit
Recover startup from a repository container: startup container recovered log
startup container recovered log · Terminal state and styles (JSON)
Read the terminal text
jk jj
›  @  kpqulpyk [email protected] 2026-01-01 12:00:00 4368eb95
·  │  (empty) (no description set)
   ○  torsvxyv [email protected] 2026-01-01 12:00:00 38b8941b
   │  Container workspace review
   ◆  zzzzzzzz root() 00000000




































? help  H home  L log  r refresh  enter open  d diff  v evolog  s status  space mark  ...  q quit
Recover startup from a repository container: startup container status
startup container status · Terminal state and styles (JSON)
Read the terminal text
jk jj status
The working copy has no changes.
Working copy  (@) : kpqulpyk 4368eb95 (empty) (no description set)
Parent commit (@-): torsvxyv 38b8941b Container workspace review






































? help  V options  r refresh  j/k line  space page  q quit
Recover startup from a repository container: startup container workspace
startup container workspace · Terminal state and styles (JSON)
Read the terminal text
jk jj workspace list
›  * default  /home/runner/work/jk/jk/target/manual-fixtures/container.C0elno/container/default  c








































? help  r refresh  l log  s status  d diff  j/k move  u update-stale  V options  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 (46 files)

Includes source tapes, original helper scripts, fixture details, terminal states, and logs.