kajji 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -34
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,44 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+

|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A simple [jj](https://github.com/martinvonz/jj) terminal UI with custom diff rendering.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+

|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Reviewing local code has never been as prominent as it is today. Coding agents are writing line upon line, and your sorry eyes are the ones that need to trudge through it.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Kajji makes this new reality less painful with polished jj navigation and manipulation alongside Shiki-powered diff rendering with syntax highlighting and word-level diffs. To allow for jj's log to get the real estate it deserves when you're looking at the diff, while also allowing the width required for side-by-side diff rendering, kajji has two view modes: normal and diff. Switch with ctrl+x and try it out.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+

|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Why build this? While learning jj I found myself coming back to lazygit to do this quickly and easily - the options for jj didn't quite scratch that lazygit itch of speed, simplicity and polish.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- **Polish & simplicity** - Do less, but do it well.
|
|
18
|
-
- **Intuitive UX** - Sensible defaults, consistent patterns.
|
|
19
|
-
- **Snappy** - If it feels slow, it's a bug.
|
|
20
|
-
|
|
21
|
-
## Features
|
|
22
|
-
|
|
23
|
-
**Core jj operations:**
|
|
24
|
-
- [x] View commit log with graph
|
|
25
|
-
- [x] View diffs (difftastic, delta, etc.)
|
|
26
|
-
- [x] New / edit / describe / squash / abandon
|
|
27
|
-
- [x] Undo / redo with preview
|
|
28
|
-
- [x] Bookmarks (create, delete, rename, move)
|
|
29
|
-
- [x] Git fetch / push
|
|
30
|
-
- [x] Operation log with restore
|
|
31
|
-
- [ ] Rebase
|
|
32
|
-
- [ ] Split
|
|
33
|
-
- [ ] Conflict resolution
|
|
15
|
+
Kajji is my attempt to bring the UX of lazygit to jj, while also aiming for top-class diff rendering and exploring leveraging coding agents effectively. I'm building this for myself first and foremost, but I hope it can be helpful to others too.
|
|
34
16
|
|
|
35
|
-
|
|
36
|
-
- [x] Vim-style navigation (j/k, ctrl+u/d)
|
|
37
|
-
- [x] Mouse support (click, double-click, scroll)
|
|
38
|
-
- [x] Collapsible file tree with status colors
|
|
39
|
-
- [x] Help palette with fuzzy search (`?`)
|
|
40
|
-
- [ ] Multi-select for batch operations
|
|
41
|
-
- [ ] Search and filter
|
|
17
|
+
> Disclaimer: almost all code in this project has been written by coding agents (primarily Claude Opus 4.5 through [OpenCode](https://github.com/sst/opencode) (100% via API of course 😌)).
|
|
42
18
|
|
|
43
19
|
## Installation
|
|
44
20
|
|
|
@@ -70,12 +46,44 @@ bun install
|
|
|
70
46
|
bun dev
|
|
71
47
|
```
|
|
72
48
|
|
|
49
|
+
## Principles
|
|
50
|
+
|
|
51
|
+
- **Polish & simplicity** - Do less, but do it well.
|
|
52
|
+
- **Intuitive UX** - Sensible defaults, consistent patterns.
|
|
53
|
+
- **Snappy** - If it feels slow, it's a bug.
|
|
54
|
+
|
|
55
|
+
## Features
|
|
56
|
+
|
|
57
|
+
**Core jj operations:**
|
|
58
|
+
- [x] View commit log with graph
|
|
59
|
+
- [x] View diffs with syntax highlighting and word-level emphasis
|
|
60
|
+
- [x] New / edit / describe / squash / abandon
|
|
61
|
+
- [x] Rebase with revision picker
|
|
62
|
+
- [x] Split (suspends TUI for jj's native split)
|
|
63
|
+
- [x] Undo / redo with preview
|
|
64
|
+
- [x] Bookmarks (create, delete, rename, move)
|
|
65
|
+
- [x] Git fetch / push
|
|
66
|
+
- [x] Operation log with restore
|
|
67
|
+
- [ ] Conflict resolution
|
|
68
|
+
|
|
69
|
+
**TUI polish:**
|
|
70
|
+
- [x] Vim-style navigation (j/k, ctrl+u/d)
|
|
71
|
+
- [x] Mouse support (click, double-click, scroll)
|
|
72
|
+
- [x] Collapsible file tree with status colors
|
|
73
|
+
- [x] Help palette with fuzzy search (`?`)
|
|
74
|
+
- [x] Focus modes for normal browsing vs diff viewing
|
|
75
|
+
- [x] Recent repository switcher
|
|
76
|
+
- [x] Automatic update notifications
|
|
77
|
+
- [ ] Multi-select for batch operations
|
|
78
|
+
- [ ] Search and filter
|
|
79
|
+
|
|
73
80
|
## Usage
|
|
74
81
|
|
|
75
82
|
Run `kajji` in any jj repository:
|
|
76
83
|
|
|
77
84
|
```bash
|
|
78
|
-
kajji
|
|
85
|
+
kajji # current directory
|
|
86
|
+
kajji /path/to/repo # specific directory
|
|
79
87
|
```
|
|
80
88
|
|
|
81
89
|
### Keybindings
|
|
@@ -86,6 +94,8 @@ kajji
|
|
|
86
94
|
| `Tab` | Cycle focus between panels |
|
|
87
95
|
| `Enter` | Drill into commit / file |
|
|
88
96
|
| `Escape` | Back / close modal |
|
|
97
|
+
| `ctrl+x` | Toggle focus mode (normal / diff) |
|
|
98
|
+
| `ctrl+o` | Open recent repository |
|
|
89
99
|
| `?` | Show help with fuzzy search |
|
|
90
100
|
| `q` | Quit |
|
|
91
101
|
|
|
@@ -98,6 +108,8 @@ kajji
|
|
|
98
108
|
| `d` | Describe change |
|
|
99
109
|
| `s` | Squash into parent |
|
|
100
110
|
| `a` | Abandon change |
|
|
111
|
+
| `r` | Rebase |
|
|
112
|
+
| `S` | Split |
|
|
101
113
|
| `u` / `U` | Undo / redo |
|
|
102
114
|
| `f` / `F` | Git fetch / fetch all |
|
|
103
115
|
| `p` / `P` | Git push / push all |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kajji",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "A terminal UI for Jujutsu: the rudder for your jj",
|
|
5
5
|
"bin": {
|
|
6
6
|
"kajji": "./bin/kajji"
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"postinstall": "node ./script/postinstall.mjs"
|
|
10
10
|
},
|
|
11
11
|
"optionalDependencies": {
|
|
12
|
-
"kajji-darwin-arm64": "0.
|
|
13
|
-
"kajji-darwin-x64": "0.
|
|
14
|
-
"kajji-linux-x64": "0.
|
|
15
|
-
"kajji-linux-arm64": "0.
|
|
12
|
+
"kajji-darwin-arm64": "0.3.0",
|
|
13
|
+
"kajji-darwin-x64": "0.3.0",
|
|
14
|
+
"kajji-linux-x64": "0.3.0",
|
|
15
|
+
"kajji-linux-arm64": "0.3.0"
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|