claude-issue-solver 1.14.0 → 1.15.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 CHANGED
@@ -27,16 +27,18 @@ This CLI tool fetches an issue from your repo, creates a worktree, opens Claude
27
27
  ## Demo
28
28
 
29
29
  ```bash
30
- $ claude-issue
30
+ $ cis
31
31
 
32
32
  Open issues for my-project:
33
- (2 issues with open PRs hidden)
34
33
 
35
- ? Select an issue to solve:
36
- ❯ #42 Add dark mode support
37
- #38 Fix login bug on mobile
38
- #35 Update dependencies
39
- Cancel
34
+ ? Select issues to solve (space to select, enter to confirm):
35
+ #42 Add dark mode support
36
+ #38 Fix login bug on mobile [PR]
37
+ #35 Update dependencies
38
+
39
+ # Select multiple issues, then press enter...
40
+
41
+ Starting 2 issue(s)...
40
42
 
41
43
  📋 Fetching issue #42...
42
44
  ✔ Found issue #42
@@ -46,11 +48,14 @@ Open issues for my-project:
46
48
 
47
49
  ✅ Worktree created at: ../my-project-issue-42-add-dark-mode-support
48
50
  Claude is running in a new terminal window.
51
+
52
+ 📋 Fetching issue #35...
53
+ ...
49
54
  ```
50
55
 
51
56
  ## Features
52
57
 
53
- - 🎯 **Interactive issue selection** - Lists open issues with arrow-key navigation (hides issues with open PRs)
58
+ - 🎯 **Multi-select issues** - Select multiple issues to solve in parallel, each in its own terminal
54
59
  - ✨ **Create and solve** - Create new issues and start solving them immediately
55
60
  - 🌿 **Worktree isolation** - Each issue gets its own worktree, work on multiple issues in parallel
56
61
  - 🤖 **Real-time PR creation** - Automatically creates/updates PR as Claude commits changes
@@ -26,22 +26,22 @@ async function selectCommand() {
26
26
  value: issue.number,
27
27
  };
28
28
  });
29
- choices.push({
30
- name: chalk_1.default.dim('Cancel'),
31
- value: -1,
32
- });
33
- const { issueNumber } = await inquirer_1.default.prompt([
29
+ const { issueNumbers } = await inquirer_1.default.prompt([
34
30
  {
35
- type: 'list',
36
- name: 'issueNumber',
37
- message: 'Select an issue to solve:',
31
+ type: 'checkbox',
32
+ name: 'issueNumbers',
33
+ message: 'Select issues to solve (space to select, enter to confirm):',
38
34
  choices,
39
35
  pageSize: 15,
40
36
  },
41
37
  ]);
42
- if (issueNumber === -1) {
43
- console.log(chalk_1.default.dim('Cancelled.'));
38
+ if (issueNumbers.length === 0) {
39
+ console.log(chalk_1.default.dim('No issues selected.'));
44
40
  return;
45
41
  }
46
- await (0, solve_1.solveCommand)(issueNumber);
42
+ console.log(chalk_1.default.cyan(`\nStarting ${issueNumbers.length} issue(s)...\n`));
43
+ for (const issueNumber of issueNumbers) {
44
+ await (0, solve_1.solveCommand)(issueNumber);
45
+ console.log();
46
+ }
47
47
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-issue-solver",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "description": "Automatically solve GitHub issues using Claude Code",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -10,7 +10,8 @@
10
10
  "scripts": {
11
11
  "build": "tsc",
12
12
  "dev": "ts-node src/index.ts",
13
- "prepublishOnly": "npm run build"
13
+ "prepublishOnly": "npm run build",
14
+ "release": "npx ts-node scripts/release.ts"
14
15
  },
15
16
  "keywords": [
16
17
  "claude",
@@ -35,6 +36,7 @@
35
36
  "devDependencies": {
36
37
  "@types/inquirer": "^8.2.10",
37
38
  "@types/node": "^20.10.0",
39
+ "ts-node": "^10.9.2",
38
40
  "typescript": "^5.3.0"
39
41
  },
40
42
  "engines": {