santree 0.2.0 → 0.2.2
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 +82 -60
- package/dist/commands/dashboard.js +317 -144
- package/dist/commands/doctor.js +37 -2
- package/dist/commands/helpers/template.d.ts +1 -1
- package/dist/commands/pr/fix.js +1 -1
- package/dist/commands/pr/review.js +1 -1
- package/dist/commands/worktree/work.js +1 -1
- package/dist/lib/ai.d.ts +6 -8
- package/dist/lib/ai.js +14 -19
- package/dist/lib/dashboard/IssueList.js +19 -5
- package/dist/lib/dashboard/Overlays.d.ts +4 -1
- package/dist/lib/dashboard/Overlays.js +5 -2
- package/dist/lib/dashboard/data.js +34 -6
- package/dist/lib/dashboard/types.d.ts +20 -3
- package/dist/lib/dashboard/types.js +32 -1
- package/dist/lib/exec.d.ts +1 -0
- package/dist/lib/exec.js +5 -1
- package/dist/lib/linear.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -39,6 +39,7 @@ eval "$(santree helpers shell-init bash)" # for bash
|
|
|
39
39
|
This enables automatic directory switching after `worktree create` and `worktree switch` commands.
|
|
40
40
|
|
|
41
41
|
The shell integration also provides:
|
|
42
|
+
|
|
42
43
|
- `st` - Alias for `santree`
|
|
43
44
|
- `stw` - Alias for `santree worktree` (e.g., `stw list`, `stw create`)
|
|
44
45
|
- `stn` - Quick create worktree with `--work --plan --tmux` (prompts for branch name)
|
|
@@ -88,55 +89,56 @@ With the `stw` alias: `stw create`, `stw list`, `stw switch`, `stw work`, `stw c
|
|
|
88
89
|
|
|
89
90
|
### Worktree (`santree worktree`)
|
|
90
91
|
|
|
91
|
-
| Command
|
|
92
|
-
|
|
93
|
-
| `santree worktree create <branch>` | Create a new worktree from base branch
|
|
94
|
-
| `santree worktree list`
|
|
95
|
-
| `santree worktree switch <branch>` | Switch to another worktree
|
|
96
|
-
| `santree worktree remove <branch>` | Remove a worktree and its branch
|
|
97
|
-
| `santree worktree clean`
|
|
98
|
-
| `santree worktree sync`
|
|
99
|
-
| `santree worktree work`
|
|
100
|
-
| `santree worktree open`
|
|
101
|
-
| `santree worktree setup`
|
|
102
|
-
| `santree worktree commit`
|
|
92
|
+
| Command | Description |
|
|
93
|
+
| ---------------------------------- | --------------------------------------------------- |
|
|
94
|
+
| `santree worktree create <branch>` | Create a new worktree from base branch |
|
|
95
|
+
| `santree worktree list` | List all worktrees with PR status and commits ahead |
|
|
96
|
+
| `santree worktree switch <branch>` | Switch to another worktree |
|
|
97
|
+
| `santree worktree remove <branch>` | Remove a worktree and its branch |
|
|
98
|
+
| `santree worktree clean` | Remove worktrees with merged/closed PRs |
|
|
99
|
+
| `santree worktree sync` | Sync current worktree with base branch |
|
|
100
|
+
| `santree worktree work` | Launch Claude AI to work on the current ticket |
|
|
101
|
+
| `santree worktree open` | Open workspace in VSCode or Cursor |
|
|
102
|
+
| `santree worktree setup` | Run the init script (`.santree/init.sh`) |
|
|
103
|
+
| `santree worktree commit` | Stage and commit changes |
|
|
103
104
|
|
|
104
105
|
### Pull Requests (`santree pr`)
|
|
105
106
|
|
|
106
|
-
| Command
|
|
107
|
-
|
|
108
|
-
| `santree pr create` | Create a GitHub pull request
|
|
109
|
-
| `santree pr open`
|
|
110
|
-
| `santree pr fix`
|
|
107
|
+
| Command | Description |
|
|
108
|
+
| ------------------- | ------------------------------------- |
|
|
109
|
+
| `santree pr create` | Create a GitHub pull request |
|
|
110
|
+
| `santree pr open` | Open the current PR in the browser |
|
|
111
|
+
| `santree pr fix` | Fix PR review comments with AI |
|
|
111
112
|
| `santree pr review` | Review changes against ticket with AI |
|
|
112
113
|
|
|
113
114
|
### Linear (`santree linear`)
|
|
114
115
|
|
|
115
|
-
| Command
|
|
116
|
-
|
|
117
|
-
| `santree linear auth`
|
|
118
|
-
| `santree linear switch` | Switch Linear workspace for this repo
|
|
119
|
-
| `santree linear open`
|
|
116
|
+
| Command | Description |
|
|
117
|
+
| ----------------------- | --------------------------------------------- |
|
|
118
|
+
| `santree linear auth` | Authenticate with Linear (OAuth) |
|
|
119
|
+
| `santree linear switch` | Switch Linear workspace for this repo |
|
|
120
|
+
| `santree linear open` | Open the current Linear ticket in the browser |
|
|
120
121
|
|
|
121
122
|
### Helpers (`santree helpers`)
|
|
122
123
|
|
|
123
|
-
| Command
|
|
124
|
-
|
|
125
|
-
| `santree helpers shell-init` | Output shell integration script
|
|
124
|
+
| Command | Description |
|
|
125
|
+
| ---------------------------- | --------------------------------- |
|
|
126
|
+
| `santree helpers shell-init` | Output shell integration script |
|
|
126
127
|
| `santree helpers statusline` | Custom statusline for Claude Code |
|
|
127
128
|
|
|
128
129
|
### Top-level
|
|
129
130
|
|
|
130
|
-
| Command
|
|
131
|
-
|
|
131
|
+
| Command | Description |
|
|
132
|
+
| ------------------- | ----------------------------------------------- |
|
|
132
133
|
| `santree dashboard` | Interactive dashboard of all your Linear issues |
|
|
133
|
-
| `santree doctor`
|
|
134
|
+
| `santree doctor` | Check system requirements and integrations |
|
|
134
135
|
|
|
135
136
|
---
|
|
136
137
|
|
|
137
138
|
## Features
|
|
138
139
|
|
|
139
140
|
### Interactive Dashboard
|
|
141
|
+
|
|
140
142
|
`santree dashboard` opens a full-screen TUI to manage all your work in one place. It shows your Linear issues grouped by project, with live status for worktrees, PRs, CI checks, and reviews.
|
|
141
143
|
|
|
142
144
|
**Left pane** — issue list with columns for priority, session ID, PR number, and CI status. Click to select, scroll wheel to navigate, drag the divider to resize panes.
|
|
@@ -158,22 +160,28 @@ With the `stw` alias: `stw create`, `stw list`, `stw switch`, `stw work`, `stw c
|
|
|
158
160
|
Commit and PR creation happen inline without leaving the dashboard. Work, fix, and review open in new tmux windows.
|
|
159
161
|
|
|
160
162
|
### Worktree Management
|
|
163
|
+
|
|
161
164
|
Create isolated worktrees for each feature branch. No more stashing or committing WIP code just to switch tasks.
|
|
162
165
|
|
|
163
166
|
### GitHub Integration
|
|
167
|
+
|
|
164
168
|
See PR status directly in your worktree list. Clean up worktrees automatically when PRs are merged or closed.
|
|
165
169
|
|
|
166
170
|
### Linear Integration
|
|
171
|
+
|
|
167
172
|
Santree fetches Linear ticket data (title, description, comments, images) and injects it into prompts when running `santree worktree work`. See [Linear Integration](#linear-integration-1) for setup.
|
|
168
173
|
|
|
169
174
|
### Claude AI Integration
|
|
175
|
+
|
|
170
176
|
Launch Claude with full context about your current ticket. Supports different modes:
|
|
177
|
+
|
|
171
178
|
- `santree worktree work` - Implement the ticket
|
|
172
179
|
- `santree worktree work --plan` - Create an implementation plan only
|
|
173
180
|
- `santree pr review` - Review changes against ticket requirements
|
|
174
181
|
- `santree pr fix` - Address PR review comments
|
|
175
182
|
|
|
176
183
|
### Init Scripts
|
|
184
|
+
|
|
177
185
|
Run custom setup scripts when creating worktrees. Perfect for copying `.env` files, installing dependencies, or any project-specific setup.
|
|
178
186
|
|
|
179
187
|
---
|
|
@@ -226,81 +234,95 @@ If you have multiple workspaces authenticated, running `santree linear auth` in
|
|
|
226
234
|
Santree provides a custom statusline for Claude Code showing git info, model, context usage, and cost.
|
|
227
235
|
|
|
228
236
|
Add to `~/.claude/settings.json`:
|
|
237
|
+
|
|
229
238
|
```json
|
|
230
239
|
{
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
240
|
+
"statusLine": {
|
|
241
|
+
"type": "command",
|
|
242
|
+
"command": "santree helpers statusline"
|
|
243
|
+
}
|
|
235
244
|
}
|
|
236
245
|
```
|
|
237
246
|
|
|
238
247
|
The statusline displays: `repo | branch | S: staged | U: unstaged | A: untracked | Model | Context% | $Cost`
|
|
239
248
|
|
|
249
|
+
### Claude Code Remote Control (Optional)
|
|
250
|
+
|
|
251
|
+
Enable [Remote Control](https://code.claude.com/docs/en/remote-control) to continue local Claude Code sessions from your phone, tablet, or any browser. This lets you kick off work with `santree worktree work` and monitor or steer the session remotely.
|
|
252
|
+
|
|
253
|
+
Enable it for all sessions by running `/config` inside Claude Code and setting **Enable Remote Control for all sessions** to `true`. This writes `remoteControlAtStartup: true` to `~/.claude.json`. Run `santree doctor` to verify.
|
|
254
|
+
|
|
240
255
|
---
|
|
241
256
|
|
|
242
257
|
## Command Options
|
|
243
258
|
|
|
244
259
|
### worktree create
|
|
245
|
-
|
|
246
|
-
|
|
260
|
+
|
|
261
|
+
| Option | Description |
|
|
262
|
+
| ----------------- | ------------------------------------------------- |
|
|
247
263
|
| `--base <branch>` | Base branch to create from (default: main/master) |
|
|
248
|
-
| `--work`
|
|
249
|
-
| `--plan`
|
|
250
|
-
| `--no-pull`
|
|
251
|
-
| `--tmux`
|
|
252
|
-
| `--name <name>`
|
|
264
|
+
| `--work` | Launch Claude after creating |
|
|
265
|
+
| `--plan` | With --work, only create implementation plan |
|
|
266
|
+
| `--no-pull` | Skip pulling latest changes |
|
|
267
|
+
| `--tmux` | Open worktree in new tmux window |
|
|
268
|
+
| `--name <name>` | Custom tmux window name |
|
|
253
269
|
|
|
254
270
|
### worktree sync
|
|
255
|
-
|
|
256
|
-
|
|
271
|
+
|
|
272
|
+
| Option | Description |
|
|
273
|
+
| ---------- | --------------------------- |
|
|
257
274
|
| `--rebase` | Use rebase instead of merge |
|
|
258
275
|
|
|
259
276
|
### worktree remove
|
|
277
|
+
|
|
260
278
|
Removes the worktree and deletes the branch. Uses force mode by default (removes even with uncommitted changes).
|
|
261
279
|
|
|
262
280
|
### worktree clean
|
|
281
|
+
|
|
263
282
|
Shows worktrees with merged/closed PRs and prompts for confirmation before removing.
|
|
264
283
|
|
|
265
284
|
### worktree open
|
|
266
|
-
|
|
267
|
-
|
|
285
|
+
|
|
286
|
+
| Option | Description |
|
|
287
|
+
| ---------------- | --------------------------------------------------------------------------------------- |
|
|
268
288
|
| `--editor <cmd>` | Editor command to use (default: `code`). Also configurable via `SANTREE_EDITOR` env var |
|
|
269
289
|
|
|
270
290
|
### worktree work
|
|
271
|
-
|
|
272
|
-
|
|
291
|
+
|
|
292
|
+
| Option | Description |
|
|
293
|
+
| -------- | ------------------------------- |
|
|
273
294
|
| `--plan` | Only create implementation plan |
|
|
274
295
|
|
|
275
296
|
Automatically fetches Linear ticket data if authenticated. Degrades gracefully if not.
|
|
276
297
|
|
|
277
298
|
### pr create
|
|
278
|
-
|
|
279
|
-
|
|
299
|
+
|
|
300
|
+
| Option | Description |
|
|
301
|
+
| -------- | --------------------------------------------- |
|
|
280
302
|
| `--fill` | Use AI to fill the PR template before opening |
|
|
281
303
|
|
|
282
304
|
Automatically pushes, detects existing PRs, and uses the first commit message as the title. If a closed PR exists for the branch, prompts before creating a new one.
|
|
283
305
|
|
|
284
306
|
### linear auth
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
|
307
|
+
|
|
308
|
+
| Option | Description |
|
|
309
|
+
| ------------- | ------------------------------------------------ |
|
|
310
|
+
| `--status` | Show current auth status (org, token expiry) |
|
|
288
311
|
| `--test <id>` | Fetch a ticket by ID to verify integration works |
|
|
289
|
-
| `--logout`
|
|
312
|
+
| `--logout` | Revoke tokens and log out |
|
|
290
313
|
|
|
291
314
|
---
|
|
292
315
|
|
|
293
316
|
## Requirements
|
|
294
317
|
|
|
295
|
-
| Tool
|
|
296
|
-
|
|
297
|
-
| Node.js >= 20
|
|
298
|
-
| Git
|
|
299
|
-
| GitHub CLI (`gh`)
|
|
300
|
-
| Claude Code (`claude`)
|
|
301
|
-
|
|
|
302
|
-
|
|
|
303
|
-
| VSCode (`code`) or Cursor (`cursor`) | Optional: workspace editor |
|
|
318
|
+
| Tool | Purpose |
|
|
319
|
+
| ------------------------------------ | ------------------------------------ |
|
|
320
|
+
| Node.js >= 20 | Runtime |
|
|
321
|
+
| Git | Worktree operations |
|
|
322
|
+
| GitHub CLI (`gh`) | PR integration |
|
|
323
|
+
| Claude Code (`claude`) | AI agent for `work`, `fix`, `review` |
|
|
324
|
+
| tmux | Optional: new window support |
|
|
325
|
+
| VSCode (`code`) or Cursor (`cursor`) | Optional: workspace editor |
|
|
304
326
|
|
|
305
327
|
---
|
|
306
328
|
|