@qrafty-ai/opencode-kanban 0.1.12 → 0.2.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/LICENSE +21 -0
- package/README.md +103 -70
- package/package.json +3 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 qrafty-ai
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,20 +1,53 @@
|
|
|
1
1
|
# opencode-kanban
|
|
2
2
|
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="assets/kanban.jpg" alt="opencode-kanban board view" width="49%" />
|
|
5
|
+
<img src="assets/detail.jpg" alt="opencode-kanban detail view" width="49%" />
|
|
6
|
+
</p>
|
|
7
|
+
|
|
3
8
|
A Rust terminal kanban board for managing Git worktrees and OpenCode tmux sessions.
|
|
4
9
|
|
|
5
|
-
##
|
|
10
|
+
## Why this exists
|
|
6
11
|
|
|
7
|
-
- TUI task
|
|
8
|
-
- Git worktree management from the board
|
|
9
|
-
- tmux-first workflow with quick session switching
|
|
10
|
-
- SQLite-backed state and task metadata
|
|
12
|
+
`opencode-kanban` gives you a single TUI board to track task state while creating and attaching to per-task tmux sessions and Git worktrees.
|
|
11
13
|
|
|
12
|
-
##
|
|
14
|
+
## Prerequisites
|
|
13
15
|
|
|
14
16
|
- Linux or macOS
|
|
15
|
-
- `tmux` installed and available on `PATH`
|
|
17
|
+
- `tmux` installed and available on `PATH` (required)
|
|
18
|
+
- `opencode` installed and available on `PATH` (recommended for attach/resume workflows)
|
|
19
|
+
|
|
20
|
+
## Quickstart (2 minutes)
|
|
21
|
+
|
|
22
|
+
1. Install:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g opencode-kanban
|
|
26
|
+
```
|
|
16
27
|
|
|
17
|
-
|
|
28
|
+
2. Verify runtime tools:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
opencode-kanban --version
|
|
32
|
+
tmux -V
|
|
33
|
+
opencode --version
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
3. Start the app:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
opencode-kanban
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
4. In the UI:
|
|
43
|
+
- Press `n` to create a task
|
|
44
|
+
- Press `Enter` on a task to attach
|
|
45
|
+
- Press `?` for built-in help
|
|
46
|
+
- Press `q` to quit
|
|
47
|
+
|
|
48
|
+
If you start outside tmux, `opencode-kanban` auto-creates or auto-attaches to a tmux session named `opencode-kanban`.
|
|
49
|
+
|
|
50
|
+
## Installation
|
|
18
51
|
|
|
19
52
|
### npm
|
|
20
53
|
|
|
@@ -37,94 +70,94 @@ cargo build --release
|
|
|
37
70
|
./target/release/opencode-kanban
|
|
38
71
|
```
|
|
39
72
|
|
|
40
|
-
##
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
opencode-kanban
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
If you run the CLI outside tmux, it creates or attaches to an `opencode-kanban` tmux session automatically.
|
|
47
|
-
|
|
48
|
-
## Local development
|
|
73
|
+
## First run
|
|
49
74
|
|
|
50
|
-
|
|
51
|
-
cargo test
|
|
52
|
-
cargo clippy -- -D warnings
|
|
53
|
-
cargo build --release
|
|
54
|
-
```
|
|
75
|
+
- Launch default project:
|
|
55
76
|
|
|
56
|
-
|
|
77
|
+
```bash
|
|
78
|
+
opencode-kanban
|
|
79
|
+
```
|
|
57
80
|
|
|
58
|
-
|
|
81
|
+
- Launch a named project:
|
|
59
82
|
|
|
60
|
-
|
|
83
|
+
```bash
|
|
84
|
+
opencode-kanban --project my-project
|
|
85
|
+
```
|
|
61
86
|
|
|
62
|
-
|
|
63
|
-
git tag -a v0.1.0 -m "Release v0.1.0"
|
|
64
|
-
git push origin v0.1.0
|
|
65
|
-
```
|
|
87
|
+
- Start with a theme preset:
|
|
66
88
|
|
|
67
|
-
|
|
89
|
+
```bash
|
|
90
|
+
opencode-kanban --theme default
|
|
91
|
+
opencode-kanban --theme high-contrast
|
|
92
|
+
opencode-kanban --theme mono
|
|
93
|
+
```
|
|
68
94
|
|
|
69
|
-
|
|
95
|
+
Each project uses its own SQLite file and board state.
|
|
70
96
|
|
|
71
|
-
|
|
97
|
+
## Core workflows
|
|
72
98
|
|
|
73
|
-
|
|
74
|
-
- platform-tagged variants for Linux x64, macOS x64, and macOS arm64
|
|
99
|
+
### Start a new task
|
|
75
100
|
|
|
76
|
-
|
|
101
|
+
1. Press `n` to open the new-task dialog.
|
|
102
|
+
2. Pick a repository and enter task details.
|
|
103
|
+
3. Press `Enter` to create.
|
|
104
|
+
4. Press `Enter` on the task card to attach to its tmux/OpenCode session.
|
|
77
105
|
|
|
78
|
-
|
|
106
|
+
### Resume previous work
|
|
79
107
|
|
|
80
|
-
|
|
108
|
+
1. Open the project (`Ctrl-p` to switch projects if needed).
|
|
109
|
+
2. Select the task.
|
|
110
|
+
3. Press `Enter` to attach to the existing session.
|
|
81
111
|
|
|
82
|
-
|
|
83
|
-
git tag -a v0.1.0 -m "Release v0.1.0"
|
|
84
|
-
git push origin v0.1.0
|
|
85
|
-
```
|
|
112
|
+
### Organize work on the board
|
|
86
113
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
4. Pushes the updated PKGBUILD (and auto-generated `.SRCINFO`) to the AUR Git repository
|
|
114
|
+
- Move focus with `h`/`l` and select with `j`/`k`.
|
|
115
|
+
- Reorder/move task with `H`/`J`/`K`/`L`.
|
|
116
|
+
- Archive selected task with `a`.
|
|
117
|
+
- Open archive view with `A`.
|
|
92
118
|
|
|
93
|
-
|
|
119
|
+
## Keybindings cheat sheet
|
|
94
120
|
|
|
95
|
-
|
|
121
|
+
- `Ctrl-p`: switch project
|
|
122
|
+
- `n`: new task
|
|
123
|
+
- `Enter`: attach selected task
|
|
124
|
+
- `h`/`j`/`k`/`l`: navigate board
|
|
125
|
+
- `H`/`J`/`K`/`L`: move task
|
|
126
|
+
- `a`: archive selected task
|
|
127
|
+
- `A`: open archive view
|
|
128
|
+
- `?`: help overlay
|
|
129
|
+
- `q`: quit
|
|
96
130
|
|
|
97
|
-
|
|
131
|
+
For full, current bindings, use the in-app help overlay (`?`).
|
|
98
132
|
|
|
99
|
-
|
|
100
|
-
ssh-keygen -t ed25519 -C "github-actions@qrafty.ai" -f aur_deploy -N ""
|
|
101
|
-
```
|
|
133
|
+
## Configuration
|
|
102
134
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
135
|
+
- Settings file: `~/.config/opencode-kanban/settings.toml`
|
|
136
|
+
- Legacy keybindings file (deprecated): `~/.config/opencode-kanban/keybindings.toml`
|
|
137
|
+
- Project databases (Linux default): `~/.local/share/opencode-kanban/*.sqlite`
|
|
106
138
|
|
|
107
|
-
|
|
108
|
-
- Repository → Settings → Secrets and variables → Actions → New repository secret
|
|
109
|
-
- Name: `AUR_SSH_PRIVATE_KEY`
|
|
110
|
-
- Value: **base64-encoded** private key — GitHub strips trailing newlines from secrets which corrupts PEM files; base64 avoids this:
|
|
139
|
+
The app creates config/data files on demand.
|
|
111
140
|
|
|
112
|
-
|
|
113
|
-
cat aur_deploy | base64 -w0
|
|
114
|
-
```
|
|
141
|
+
## Troubleshooting
|
|
115
142
|
|
|
116
|
-
|
|
143
|
+
- `tmux is required but not available`:
|
|
144
|
+
- Install tmux and confirm `tmux -V` works in the same shell.
|
|
145
|
+
- `OpenCode binary not found`:
|
|
146
|
+
- Install OpenCode and confirm `opencode --version` works.
|
|
147
|
+
- Mouse scroll/click not working well in tmux:
|
|
148
|
+
- Run `tmux set -g mouse on`.
|
|
117
149
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
## First-time npm setup
|
|
150
|
+
## Local development
|
|
121
151
|
|
|
122
|
-
|
|
152
|
+
```bash
|
|
153
|
+
cargo test
|
|
154
|
+
cargo clippy -- -D warnings
|
|
155
|
+
cargo build --release
|
|
156
|
+
```
|
|
123
157
|
|
|
124
|
-
|
|
125
|
-
- Workflow: `.github/workflows/publish-npm.yaml`
|
|
158
|
+
## Maintainers
|
|
126
159
|
|
|
127
|
-
|
|
160
|
+
Release and publisher setup docs are in `docs/releasing.md`.
|
|
128
161
|
|
|
129
162
|
## License
|
|
130
163
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qrafty-ai/opencode-kanban",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Terminal kanban board for managing OpenCode tmux sessions",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"url": "https://github.com/qrafty-ai/opencode-kanban.git"
|
|
19
19
|
},
|
|
20
20
|
"optionalDependencies": {
|
|
21
|
-
"@qrafty-ai/opencode-kanban-linux-x64": "npm:@qrafty-ai/opencode-kanban@0.
|
|
22
|
-
"@qrafty-ai/opencode-kanban-darwin-arm64": "npm:@qrafty-ai/opencode-kanban@0.
|
|
21
|
+
"@qrafty-ai/opencode-kanban-linux-x64": "npm:@qrafty-ai/opencode-kanban@0.2.0-linux-x64",
|
|
22
|
+
"@qrafty-ai/opencode-kanban-darwin-arm64": "npm:@qrafty-ai/opencode-kanban@0.2.0-darwin-arm64"
|
|
23
23
|
}
|
|
24
24
|
}
|