@slahon/lazykit 1.2.6 → 1.2.8

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
@@ -14,15 +14,18 @@ You describe what you want. Claude ships it.
14
14
  npx @slahon/lazykit@latest init
15
15
  ```
16
16
 
17
- Run this inside your project folder. That's it. LazyKit handles everything else automatically.
17
+ Run this from your **project's root directory** — the same folder that contains your `.git` folder and has a GitHub remote configured. That's it. LazyKit handles everything else automatically.
18
18
 
19
19
  ## Requirements
20
20
 
21
21
  - Node.js 18+
22
- - A GitHub repository with a remote set up
22
+ - A GitHub repository with a remote set up (`git remote -v` should show a GitHub URL)
23
23
  - A Claude Pro or Max subscription ([claude.ai](https://claude.ai))
24
24
  - Claude Code installed locally (`npm install -g @anthropic-ai/claude-code`)
25
25
  - GitHub CLI (`gh`) — required for full automation (`brew install gh` / [cli.github.com](https://cli.github.com))
26
+ - **Claude Code GitHub App** installed on your repo — [github.com/apps/claude](https://github.com/apps/claude) *(required for the Actions workflow to run)*
27
+
28
+ > **All `npx @slahon/lazykit` commands must be run from your project's root directory** — the folder where your `.git` directory lives and your GitHub remote is configured.
26
29
 
27
30
  ## How it works
28
31
 
@@ -72,6 +75,7 @@ Running `npx @slahon/lazykit@latest init` fully sets up your repo — no manual
72
75
  | Creates label | Creates the trigger label on GitHub |
73
76
  | Enables PR creation | Grants Actions permission to open pull requests |
74
77
  | Sets token | Runs `claude setup-token` and stores it as `CLAUDE_CODE_OAUTH_TOKEN` in your repo secrets |
78
+ | GitHub App | Prompts you to install the Claude Code GitHub App on your repo |
75
79
  | Commits and pushes | Commits all generated files and pushes to GitHub |
76
80
 
77
81
  ## Commands
@@ -120,7 +124,6 @@ During `npx @slahon/lazykit@latest init` you will be asked:
120
124
 
121
125
  | Option | Default | Description |
122
126
  |--------|---------|-------------|
123
- | Label name | `lazykit` | The GitHub label that triggers Claude |
124
127
  | Auto-trigger | Yes | Trigger Claude on every new issue, or only when you apply the label |
125
128
  | Generate CLAUDE.md | Yes | Create a project guide for Claude |
126
129
 
package/init.js CHANGED
@@ -229,9 +229,22 @@ async function init({ dryRun = false } = {}) {
229
229
  }
230
230
  }
231
231
 
232
+ // ─── Step 11: Install Claude Code GitHub App ──────────────────────────────
233
+ if (!dryRun) {
234
+ console.log('\n' + chalk.bold.white(' 📦 Install the Claude Code GitHub App\n'));
235
+ console.log(chalk.gray(' The workflow requires the Claude Code GitHub App installed on your repo.'));
236
+ console.log(chalk.gray(' Without it, the Actions run will fail with a 401 error.\n'));
237
+ console.log(' ' + chalk.bold.cyan('→ https://github.com/apps/claude') + '\n');
238
+ console.log(chalk.gray(' Click "Install" → select your account → grant access to this repo.'));
239
+ console.log(chalk.gray(' Takes about 30 seconds.\n'));
240
+ await confirm('Installed the GitHub App? (press Enter to continue)', true);
241
+ } else {
242
+ log.info('[dry-run] Would prompt: install Claude Code GitHub App at https://github.com/apps/claude');
243
+ }
244
+
232
245
  log.divider();
233
246
 
234
- // ─── Step 11: Commit and push ──────────────────────────────────────────────
247
+ // ─── Step 12: Commit and push ──────────────────────────────────────────────
235
248
  if (dryRun) {
236
249
  log.info('[dry-run] Would commit and push generated files');
237
250
  log.blank();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slahon/lazykit",
3
- "version": "1.2.6",
3
+ "version": "1.2.8",
4
4
  "description": "Drop an issue, get a PR. AI-powered issue-to-PR automation using Claude.",
5
5
  "bin": {
6
6
  "lazykit": "./index.js"
package/status.js CHANGED
@@ -107,6 +107,10 @@ async function status() {
107
107
  log.success("No branch protection on main — Claude's PRs can be merged directly");
108
108
  }
109
109
 
110
+ log.blank();
111
+ log.info(`Claude Code GitHub App: verify it's installed at ${chalk.cyan(`https://github.com/apps/claude`)}`);
112
+ log.info(' If the Actions run fails with a 401 error, the app is not installed.');
113
+
110
114
  console.log();
111
115
  }
112
116