@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.
Files changed (3) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -70
  3. 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
- ## Features
10
+ ## Why this exists
6
11
 
7
- - TUI task board for OpenCode session workflows
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
- ## Requirements
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
- ## Install
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
- ## Run
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
- ```bash
51
- cargo test
52
- cargo clippy -- -D warnings
53
- cargo build --release
54
- ```
75
+ - Launch default project:
55
76
 
56
- ## npm release process
77
+ ```bash
78
+ opencode-kanban
79
+ ```
57
80
 
58
- Publishing is handled by `.github/workflows/publish-npm.yaml` and uses npm trusted publishing via GitHub OIDC.
81
+ - Launch a named project:
59
82
 
60
- 1. Create and push a release tag:
83
+ ```bash
84
+ opencode-kanban --project my-project
85
+ ```
61
86
 
62
- ```bash
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
- For prereleases, use `vX.Y.Z-alpha.N` tags.
89
+ ```bash
90
+ opencode-kanban --theme default
91
+ opencode-kanban --theme high-contrast
92
+ opencode-kanban --theme mono
93
+ ```
68
94
 
69
- The workflow derives the package version from the tag (or manual dispatch input) and updates `Cargo.toml` during CI before building.
95
+ Each project uses its own SQLite file and board state.
70
96
 
71
- The workflow builds platform binaries, packages npm tarballs, and publishes:
97
+ ## Core workflows
72
98
 
73
- - `opencode-kanban` (main package)
74
- - platform-tagged variants for Linux x64, macOS x64, and macOS arm64
99
+ ### Start a new task
75
100
 
76
- ## AUR release process
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
- Publishing is handled by `.github/workflows/publish-aur.yaml` and targets the [`opencode-kanban`](https://aur.archlinux.org/packages/opencode-kanban) AUR package.
106
+ ### Resume previous work
79
107
 
80
- The same version tag that triggers npm publishing also triggers AUR publishing:
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
- ```bash
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
- The workflow:
88
- 1. Strips the `v` prefix to get the semver version
89
- 2. Downloads the GitHub release tarball and computes its SHA256
90
- 3. Stamps `aur/PKGBUILD` with the version and checksum
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
- Only stable `vX.Y.Z` tags are supported (no alpha/pre-release variants).
119
+ ## Keybindings cheat sheet
94
120
 
95
- ## First-time AUR setup
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
- 1. Generate a dedicated SSH key pair (no passphrase):
131
+ For full, current bindings, use the in-app help overlay (`?`).
98
132
 
99
- ```bash
100
- ssh-keygen -t ed25519 -C "github-actions@qrafty.ai" -f aur_deploy -N ""
101
- ```
133
+ ## Configuration
102
134
 
103
- 2. Add the **public key** (`aur_deploy.pub`) to your AUR account:
104
- - Log in at <https://aur.archlinux.org/account>
105
- - Paste the public key into **SSH Public Keys**
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
- 3. Add the **private key** as a GitHub Actions secret named `AUR_SSH_PRIVATE_KEY`:
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
- ```bash
113
- cat aur_deploy | base64 -w0
114
- ```
141
+ ## Troubleshooting
115
142
 
116
- Paste the single-line output as the secret value.
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
- 4. Claim or create the `opencode-kanban` package on AUR (first publish does this automatically if the package doesn't exist yet).
119
-
120
- ## First-time npm setup
150
+ ## Local development
121
151
 
122
- In npm package settings, configure a Trusted Publisher for this repository and workflow file:
152
+ ```bash
153
+ cargo test
154
+ cargo clippy -- -D warnings
155
+ cargo build --release
156
+ ```
123
157
 
124
- - Repository: this GitHub repository
125
- - Workflow: `.github/workflows/publish-npm.yaml`
158
+ ## Maintainers
126
159
 
127
- No `NPM_TOKEN` secret is required when trusted publishing is configured.
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.1.12",
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.1.12-linux-x64",
22
- "@qrafty-ai/opencode-kanban-darwin-arm64": "npm:@qrafty-ai/opencode-kanban@0.1.12-darwin-arm64"
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
  }