@iloom/cli 0.1.17 → 0.1.19

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 (118) hide show
  1. package/README.md +51 -6
  2. package/dist/ClaudeContextManager-JKR4WGNU.js +13 -0
  3. package/dist/ClaudeService-55DQGB7T.js +12 -0
  4. package/dist/{GitHubService-F7Z3XJOS.js → GitHubService-LWP4GKGH.js} +3 -3
  5. package/dist/{LoomLauncher-MODG2SEM.js → LoomLauncher-UMMLPIZO.js} +7 -7
  6. package/dist/{PromptTemplateManager-7FINLRDE.js → PromptTemplateManager-WII75TKH.js} +2 -2
  7. package/dist/README.md +755 -0
  8. package/dist/{SettingsManager-VAZF26S2.js → SettingsManager-SKLUVE3K.js} +6 -2
  9. package/dist/{add-issue-22JBNOML.js → add-issue-X56V3XPB.js} +23 -8
  10. package/dist/add-issue-X56V3XPB.js.map +1 -0
  11. package/dist/{chunk-Y7SAGNUT.js → chunk-DEPYQRRB.js} +2 -2
  12. package/dist/{chunk-WKEWRSDB.js → chunk-ELFT36PV.js} +3 -3
  13. package/dist/chunk-FXV24OYZ.js +83 -0
  14. package/dist/chunk-FXV24OYZ.js.map +1 -0
  15. package/dist/{chunk-HPJJSYNS.js → chunk-H5LDRGVK.js} +6 -8
  16. package/dist/{chunk-HPJJSYNS.js.map → chunk-H5LDRGVK.js.map} +1 -1
  17. package/dist/{chunk-QEPVTTHD.js → chunk-IO4WFTL2.js} +17 -11
  18. package/dist/chunk-IO4WFTL2.js.map +1 -0
  19. package/dist/{chunk-KQDEK2ZW.js → chunk-JXQXSC45.js} +41 -9
  20. package/dist/chunk-JXQXSC45.js.map +1 -0
  21. package/dist/{chunk-JQ7VOSTC.js → chunk-KOCQAD2E.js} +3 -3
  22. package/dist/{chunk-YYSKGAZT.js → chunk-LAPY6NAE.js} +17 -8
  23. package/dist/chunk-LAPY6NAE.js.map +1 -0
  24. package/dist/{chunk-O2QWO64Z.js → chunk-PV3GAXQO.js} +56 -3
  25. package/dist/chunk-PV3GAXQO.js.map +1 -0
  26. package/dist/chunk-PVAVNJKS.js +188 -0
  27. package/dist/chunk-PVAVNJKS.js.map +1 -0
  28. package/dist/{chunk-CP2NU2JC.js → chunk-Q2KYPAH2.js} +7 -7
  29. package/dist/{chunk-CP2NU2JC.js.map → chunk-Q2KYPAH2.js.map} +1 -1
  30. package/dist/{chunk-W3DQTW63.js → chunk-USVVV3FP.js} +4 -4
  31. package/dist/{chunk-SSR5AVRJ.js → chunk-VCMMAFXQ.js} +21 -8
  32. package/dist/chunk-VCMMAFXQ.js.map +1 -0
  33. package/dist/chunk-VVH3ANF2.js +307 -0
  34. package/dist/chunk-VVH3ANF2.js.map +1 -0
  35. package/dist/{chunk-JBH2ZYYZ.js → chunk-VYQLLHZ7.js} +22 -3
  36. package/dist/chunk-VYQLLHZ7.js.map +1 -0
  37. package/dist/{chunk-SJUQ2NDR.js → chunk-ZMNQBJUI.js} +24 -19
  38. package/dist/chunk-ZMNQBJUI.js.map +1 -0
  39. package/dist/{chunk-T7QPXANZ.js → chunk-ZWXJBSUW.js} +17 -17
  40. package/dist/chunk-ZWXJBSUW.js.map +1 -0
  41. package/dist/{cleanup-3LUWPSM7.js → cleanup-ZHROIBSQ.js} +12 -16
  42. package/dist/cleanup-ZHROIBSQ.js.map +1 -0
  43. package/dist/cli.js +107 -49
  44. package/dist/cli.js.map +1 -1
  45. package/dist/contribute-3MQJ3XAQ.js +256 -0
  46. package/dist/contribute-3MQJ3XAQ.js.map +1 -0
  47. package/dist/{enhance-XJIQHVPD.js → enhance-VGWUX474.js} +18 -8
  48. package/dist/enhance-VGWUX474.js.map +1 -0
  49. package/dist/{feedback-23CLXKFT.js → feedback-ZOUCCHN4.js} +8 -8
  50. package/dist/{finish-3CQZIULO.js → finish-QJSK6Z7J.js} +36 -313
  51. package/dist/finish-QJSK6Z7J.js.map +1 -0
  52. package/dist/{git-LVRZ57GJ.js → git-OUYMVYJX.js} +2 -2
  53. package/dist/{ignite-WXEF2ID5.js → ignite-HICLZEYU.js} +124 -9
  54. package/dist/ignite-HICLZEYU.js.map +1 -0
  55. package/dist/index.d.ts +794 -712
  56. package/dist/index.js +169 -36
  57. package/dist/index.js.map +1 -1
  58. package/dist/init-UMKNHNV5.js +339 -0
  59. package/dist/init-UMKNHNV5.js.map +1 -0
  60. package/dist/mcp/github-comment-server.js +12 -9
  61. package/dist/mcp/github-comment-server.js.map +1 -1
  62. package/dist/neon-helpers-ZVIRPKCI.js +10 -0
  63. package/dist/{open-X6BTENPV.js → open-ETZUFSE4.js} +15 -17
  64. package/dist/{open-X6BTENPV.js.map → open-ETZUFSE4.js.map} +1 -1
  65. package/dist/prompts/init-prompt.txt +748 -0
  66. package/dist/prompts/issue-prompt.txt +141 -9
  67. package/dist/rebase-KBWFDZCN.js +95 -0
  68. package/dist/rebase-KBWFDZCN.js.map +1 -0
  69. package/dist/remote-GJEZWRCC.js +14 -0
  70. package/dist/{run-2JCPQAX3.js → run-4SVQ3WEU.js} +15 -17
  71. package/dist/{run-2JCPQAX3.js.map → run-4SVQ3WEU.js.map} +1 -1
  72. package/dist/schema/settings.schema.json +51 -1
  73. package/dist/{start-LWVRBJ6S.js → start-CT2ZEFP2.js} +54 -53
  74. package/dist/{start-LWVRBJ6S.js.map → start-CT2ZEFP2.js.map} +1 -1
  75. package/dist/{test-git-XPF4SZXJ.js → test-git-MKZATGZN.js} +3 -3
  76. package/dist/{test-prefix-XGFXFAYN.js → test-prefix-ZNLWDI3K.js} +3 -3
  77. package/dist/{update-DN3FSNKY.js → update-4TDDUR5K.js} +10 -4
  78. package/dist/{update-DN3FSNKY.js.map → update-4TDDUR5K.js.map} +1 -1
  79. package/package.json +3 -2
  80. package/dist/ClaudeContextManager-XOSXQ67R.js +0 -13
  81. package/dist/ClaudeService-YSZ6EXWP.js +0 -12
  82. package/dist/NeonProvider-PAGPUH7F.js +0 -12
  83. package/dist/add-issue-22JBNOML.js.map +0 -1
  84. package/dist/chunk-37DYYFVK.js +0 -29
  85. package/dist/chunk-37DYYFVK.js.map +0 -1
  86. package/dist/chunk-F3XBU2R7.js +0 -110
  87. package/dist/chunk-F3XBU2R7.js.map +0 -1
  88. package/dist/chunk-JBH2ZYYZ.js.map +0 -1
  89. package/dist/chunk-KQDEK2ZW.js.map +0 -1
  90. package/dist/chunk-O2QWO64Z.js.map +0 -1
  91. package/dist/chunk-QEPVTTHD.js.map +0 -1
  92. package/dist/chunk-SJUQ2NDR.js.map +0 -1
  93. package/dist/chunk-SSR5AVRJ.js.map +0 -1
  94. package/dist/chunk-T7QPXANZ.js.map +0 -1
  95. package/dist/chunk-YYSKGAZT.js.map +0 -1
  96. package/dist/cleanup-3LUWPSM7.js.map +0 -1
  97. package/dist/enhance-XJIQHVPD.js.map +0 -1
  98. package/dist/env-MDFL4ZXL.js +0 -23
  99. package/dist/finish-3CQZIULO.js.map +0 -1
  100. package/dist/ignite-WXEF2ID5.js.map +0 -1
  101. package/dist/init-RHACUR4E.js +0 -123
  102. package/dist/init-RHACUR4E.js.map +0 -1
  103. /package/dist/{ClaudeContextManager-XOSXQ67R.js.map → ClaudeContextManager-JKR4WGNU.js.map} +0 -0
  104. /package/dist/{ClaudeService-YSZ6EXWP.js.map → ClaudeService-55DQGB7T.js.map} +0 -0
  105. /package/dist/{GitHubService-F7Z3XJOS.js.map → GitHubService-LWP4GKGH.js.map} +0 -0
  106. /package/dist/{LoomLauncher-MODG2SEM.js.map → LoomLauncher-UMMLPIZO.js.map} +0 -0
  107. /package/dist/{NeonProvider-PAGPUH7F.js.map → PromptTemplateManager-WII75TKH.js.map} +0 -0
  108. /package/dist/{PromptTemplateManager-7FINLRDE.js.map → SettingsManager-SKLUVE3K.js.map} +0 -0
  109. /package/dist/{chunk-Y7SAGNUT.js.map → chunk-DEPYQRRB.js.map} +0 -0
  110. /package/dist/{chunk-WKEWRSDB.js.map → chunk-ELFT36PV.js.map} +0 -0
  111. /package/dist/{chunk-JQ7VOSTC.js.map → chunk-KOCQAD2E.js.map} +0 -0
  112. /package/dist/{chunk-W3DQTW63.js.map → chunk-USVVV3FP.js.map} +0 -0
  113. /package/dist/{feedback-23CLXKFT.js.map → feedback-ZOUCCHN4.js.map} +0 -0
  114. /package/dist/{SettingsManager-VAZF26S2.js.map → git-OUYMVYJX.js.map} +0 -0
  115. /package/dist/{env-MDFL4ZXL.js.map → neon-helpers-ZVIRPKCI.js.map} +0 -0
  116. /package/dist/{git-LVRZ57GJ.js.map → remote-GJEZWRCC.js.map} +0 -0
  117. /package/dist/{test-git-XPF4SZXJ.js.map → test-git-MKZATGZN.js.map} +0 -0
  118. /package/dist/{test-prefix-XGFXFAYN.js.map → test-prefix-ZNLWDI3K.js.map} +0 -0
package/dist/README.md ADDED
@@ -0,0 +1,755 @@
1
+ # iloom
2
+
3
+ <div align="center">
4
+
5
+ [![npm](https://img.shields.io/npm/v/%40iloom%2Fcli?label=npm)](https://www.npmjs.com/package/@iloom/cli)
6
+ [![License: BSL-1.1](https://img.shields.io/badge/license-BSL--1.1-lightgrey)](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE)
7
+ [![Built for Claude Code](https://img.shields.io/badge/built%20for-claude%20code-8A6FFF)](https://claude.ai/)
8
+ [![CI](https://github.com/iloom-ai/iloom-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/iloom-ai/iloom-cli/actions/workflows/ci.yml)
9
+
10
+ </div>
11
+
12
+ <div align="center">
13
+ <img width="327" height="328" alt="iloom-ai-logo" src="https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/assets/iloom-logo.png" />
14
+ <div>Scale understanding, not just output.</div>
15
+
16
+ </div>
17
+
18
+ #### Links to key sections
19
+ [How It Works](#how-it-works) • [Installation](#installation) • [Commands](#commands) • [Feedback](#providing-feedback) • [Limitations](#platform--integration-support) • [Configuration](#configuration)
20
+
21
+
22
+ ## Built For Modern Tools...
23
+
24
+ [![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)](https://nodejs.org/)
25
+ [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
26
+ [![Next.js](https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white)](https://nextjs.org/)
27
+ [![Neon](https://img.shields.io/badge/Neon-00E699?style=for-the-badge)](https://neon.tech/)
28
+ [![Claude Code](https://img.shields.io/badge/Claude%20Code-8A6FFF?style=for-the-badge)](https://claude.ai/)
29
+
30
+ *These companies and projects do not endorse iloom.*
31
+
32
+ ## ...To Solve A Very Modern Problem
33
+
34
+ The promise of AI-assisted development is profound: write more code, ship features faster, handle complexity at scale. But there's a hidden cost that many tools ignore.
35
+
36
+ **AI agents write code quickly. They struggle to stay in sync with their humans.**
37
+
38
+ The hard part is not writing a ton of code. It's knowing what decisions your AI is making, what assumptions it's operating under, and why it's producing what it produces.
39
+
40
+ Friction piles up:
41
+ - You open new chats for each problem and rebuild context in your head.
42
+ - Mental overhead grows. Stress rises. Momentum drops.
43
+ - Hidden assumptions creep in. The AI picks Axios when your team standardizes on fetch. It reaches for the wrong auth pattern.
44
+ - Hit a context limit and the model forgets what matters.
45
+
46
+ The outcome is familiar: more time briefing the AI than building, more time fixing than shipping. Work can look finished while somehow shrouded in mystery.
47
+
48
+ **The bottleneck isn't output velocity. It's maintaining shared understanding between human and AI at scale.**
49
+
50
+ *iloom treats context as a first-class concern. It's not a tool for managing branches - it's a control plane for maintaining alignment between you and your AI assistant.*
51
+
52
+ ## How iloom Solves This
53
+
54
+ iloom uses your existing Claude subscription, takes what context you already have, and works with you to build a shared mental model of the task at hand.
55
+
56
+ ```bash
57
+ > npm install -g @iloom/cli
58
+
59
+ # iloom doesn't need your GitHub access token - it uses the GitHub CLI instead.
60
+ > gh auth login
61
+
62
+ # Spins up an isolated dev environment.
63
+ # Pulls in issue 25 from GitHub, even if it's just an issue title.
64
+ # Fills in the blanks with you.
65
+ > iloom start 25
66
+
67
+ # or
68
+
69
+ # Creates an issue, builds that same shared mental model from scratch.
70
+ > iloom start "user auth broken"
71
+
72
+ # or
73
+
74
+ # Grabs context from this PR and its original issue, then iterates on it alongside you
75
+ > iloom start 34
76
+
77
+ # then
78
+
79
+ # Knows which loom you're in, validates, merges your code back to your primary branch.
80
+ # If you hit compilation/lint/test failures or merge conflicts along the way,
81
+ # Claude will help resolve them automatically.
82
+ > iloom finish
83
+ ```
84
+
85
+ **The iloom difference**: Surface hidden assumptions up front, then persist all the analysis and reasoning in GitHub issue comments - visible and editable - rather than burning tokens in the context window where they're invisible and set in stone.
86
+
87
+ ### One Command, Parallel Work, Predictable Flow
88
+
89
+ Each loom follows the same workflow - structured, visible, repeatable.
90
+
91
+ `iloom start` doesn't just create a git worktree. It spins up a loom. Here's what happens:
92
+
93
+ - Fetches the full GitHub issue (or PR) including all comments and requirements - or not, if they don't exist.
94
+ - Creates an isolated environment (Git worktree, database branch, web server on a deterministic unique port)
95
+ - Enhances the GitHub issue with a better description, and structured analysis & planning. Asking questions and stating assumptions along the way, all in GitHub comments.
96
+ - Launches Claude with this context preloaded from the issue, guides you through a structured workflow. You can stop at any time, pick up where you left off.
97
+ - Each loom is color-coded, from terminal windows to VS Code, so you visually know which context you're in.
98
+
99
+ **When you switch to this loom, both you and Claude know exactly what you're working on and why.**
100
+
101
+ ### Merge with Confidence
102
+
103
+ ```bash
104
+ > iloom finish
105
+ # ✅ Runs tests, types, lint - Claude helps fix any failures automatically
106
+ # ✅ Generates commit message from the issue context
107
+ # ✅ Handles merge conflicts with AI assistance
108
+ # ✅ Merges to main, installs dependencies
109
+ # ✅ Cleans up everything - worktree, database branch, and the web server you were using to test your work
110
+ ```
111
+ (as you can see, using iloom does not spare you from copious emoji)
112
+
113
+ This isn't just convenience automation. You know you're merging the correct code, correctly - the commit message is auto-generated from the issue context, and any build/test/merge failures get fixed automatically with Claude's help. It helps keep resources in check too, local and remote, by safely shutting down servers and cleaning up Neon DB branches.
114
+
115
+ ## What This Means for How You Work
116
+
117
+ ### You Stop Babysitting Your AI, Start Collaborating With It
118
+
119
+ Traditional approach:
120
+ 1. Start a feature, brief Claude on context.
121
+ 2. Review code, fix misunderstandings. Argue with Claude.
122
+ 3. Get pulled into a bug - stash or WIP commit, switch branches, start a new Claude chat.
123
+ 4. Lose context on both tasks, repeat the same explanations.
124
+
125
+ iloom approach:
126
+ 1. `il start 45` - begin the feature. Note: `il` is an alias for `iloom`.
127
+ 2. Review iloom's structured analysis in GitHub, clarify assumptions.
128
+ 3. `il start 99` - urgent bug; Claude already knows the issue context from the GitHub issue.
129
+ 4. Switch between looms freely - color coding and context persistence keep everything clear.
130
+ 5. `il finish` - work validated, merged, cleaned up.
131
+ 6. Return to your feature loom - context, reasoning, and AI alignment all intact.
132
+
133
+ **The difference**: Your AI becomes a persistent collaborator rather than a tool you're constantly playing catch-up with.
134
+
135
+ **Plus, your AI's reasoning is now visible to everyone, including future you:**
136
+ The AI analysis gets posted as GitHub comments, so anyone on your team can see the context and planning without having to ask you for background.
137
+
138
+ ### You Scale Understanding, Not Just Output
139
+
140
+ Without iloom, adding AI to your workflow increases code production but also increases cognitive load. You're managing what the AI knows, correcting misaligned suggestions, and second-guessing its understanding. Not to mention managing its context window.
141
+
142
+ With iloom, the cognitive load stays constant as you scale. Each loom holds a complete shared understanding between you and your AI. Five issues in flight feel (almost) as calm and clear as one.
143
+
144
+ **This is how you achieve sustainable velocity with AI assistance.**
145
+
146
+ ### You Reduce Rework and Chaos
147
+
148
+ When you and your AI are in lockstep:
149
+ - Features get built right the first time because you spot when the AI is going off course, way before it writes a line of code.
150
+ - Reviews focus on the quality of the AI's thinking, not just its code.
151
+ - Fewer surprises caused by AI agents inventing requirements or inconsistently implementing existing patterns
152
+ - If the AI takes a wrong turn - you don't spend hours arguing with Claude and playing context window Tetris. You just start the process again with better issue descriptions, different assumptions and better context for your AI assistant.
153
+
154
+ ### The Power of Predictable Flow
155
+
156
+ Every loom follows the same rhythm - Start → Enhance → Analyze → Plan → Implement → Human review → Finish.
157
+ The steps never change. The tools stay aligned.
158
+ Predictability becomes muscle memory - you focus on ideas, not process.
159
+
160
+ ## How It Works
161
+
162
+ iloom orchestrates specialized AI agents that analyze issues, evaluate complexity, create implementation plans, and document everything directly in GitHub comments. Each agent has a specific role and writes structured output that becomes permanent project and team knowledge.
163
+
164
+ ### Creating Context
165
+
166
+ ```bash
167
+ > il start 25
168
+ ```
169
+
170
+ iloom executes a multi-phase context-establishment workflow:
171
+
172
+ 1. **Fetch complete requirements** - GitHub issue body + all comments
173
+ 2. **Create isolated loom** - Git worktree at `~/project-looms/issue-25-auth-bugs/` (branch names are generated)
174
+ 3. **Run AI workflow agents** - Enhance, analyze, plan, and document directly in GitHub comments:
175
+ - **Enhancement Agent**: Expands brief issues into detailed requirements (if needed)
176
+ - **Complexity Evaluator**: Assesses scope and determines workflow approach
177
+ - **Simple workflow**: Combined analysis and planning in one step
178
+ - **Complex workflow**: Separate analysis phase, then detailed planning phase
179
+ 4. **Establish environment** - Unique web server port (e.g., 3025), isolated database branch, `.env` file with correct DATABASE_URL environment variable
180
+ 5. **Launch tools** - VS Code with color theme, dev server, Claude with preloaded context from GitHub comments
181
+
182
+ **Result**: A continer where both you and your AI share understanding, with all context stored as structured GitHub comments. Open the issue in your browser to see:
183
+ - Enhancement analysis (if the issue was brief)
184
+ - Complexity evaluation with metrics
185
+ - Root cause analysis and technical findings
186
+ - Implementation plan
187
+ - All context is editable, reviewable, and persists across machines
188
+
189
+ ### Maintaining Context
190
+
191
+ Each loom is isolated:
192
+
193
+ - **Git worktree** - Separate filesystem, different branch checked out, no switching overhead
194
+ - **Database branch** - Schema changes don't affect other contexts (optional, requires Neon - other provider support coming soon)
195
+ - **Unique port** - Multiple dev servers run simultaneously (base port + issue number)
196
+ - **Environment variables** - Each loom has correct database URL
197
+ - **Visual identity** - Color-coded VS Code window (40 distinct pastel colors)
198
+ - **GitHub issue comments** - Multi-phase context (enhancement, analysis, planning) persists and is editable by team members
199
+
200
+ **When you switch looms, the context switches with you.**
201
+
202
+ ### Context That Scales With Your Team
203
+
204
+ Traditional AI workflows store context locally in chat history or Markdown files. iloom stores context where it belongs - in the GitHub issue itself.
205
+
206
+ **Benefits:**
207
+
208
+ - **Transparency**: All AI analysis and planning is visible to your entire team
209
+ - **Collaboration**: Team members can review, comment on, and refine AI-generated context
210
+ - **Persistence**: Context survives repository clones, machine switches, and team member changes
211
+ - **Version Control**: GitHub tracks all context changes with timestamps and authors
212
+ - **Searchability**: GitHub's search finds AI insights across all your issues
213
+ - **Integration**: Context appears in notifications, project boards, and automation workflows
214
+ - **No Sync Issues**: Everyone sees the same context - no local file drift
215
+
216
+ When Claude analyzes your issue and creates a comment with "### Root Cause Analysis", that insight becomes permanent project knowledge. When you switch machines, clone the repo elsewhere, or bring in a new team member - the context is already there.
217
+
218
+ **This is context as infrastructure, not files.**
219
+
220
+ ### Understanding the Multi-Agent Workflow
221
+
222
+ When you run `il start 25`, iloom orchestrates specialized AI agents that work through a structured analysis and planning process:
223
+
224
+ **Phase 1: Enhancement (optional)** - `iloom-issue-enhancer`
225
+ - Checks if issue needs more detail (word count, structure, clarity)
226
+ - Expands brief descriptions into comprehensive requirements
227
+ - Posts enhancement as a GitHub comment
228
+ - **Used for:** All issues that need enhancement
229
+
230
+ **Phase 2: Complexity Evaluation** - `iloom-issue-complexity-evaluator`
231
+ - Analyzes scope, file changes, breaking changes, risks
232
+ - Classifies as Simple or Complex
233
+ - Posts evaluation as a GitHub comment with metrics
234
+ - **Used for:** All issues
235
+
236
+ #### For complex issues
237
+
238
+ **Phase 3: Dedicated Analysis** - `iloom-issue-analyzer`
239
+ - Investigates root causes and technical constraints
240
+ - Documents findings and implementation considerations
241
+ - Posts analysis as a GitHub comment
242
+ - **Used for:** Complex issues only
243
+
244
+ **Phase 4: Dedicated Planning** - `iloom-issue-planner`
245
+ - Creates detailed implementation roadmap
246
+ - Breaks work into phases with validation points
247
+ - Posts plan as a GitHub comment
248
+ - **Used for:** Complex issues only
249
+
250
+ #### For simple issues
251
+
252
+ **Phase 3+4: Combined Analysis & Planning** - `iloom-issue-analyze-and-plan`
253
+ - Combines analysis and planning in a single step to shorten time and reduce review checkpoints
254
+ - Posts combined analysis and plan as a GitHub comment
255
+ - **Used for:** Simple issues only
256
+
257
+ #### For all issues
258
+
259
+ **Phase 5: Implementation** - `iloom-issue-implementer`
260
+ - Executes the implementation plan created in previous phases
261
+ - Updates progress in a GitHub comment
262
+ - Documents decisions and completion status
263
+ - **Used for:** All issues
264
+
265
+ **Phase 6: Review (optional)** - `iloom-issue-reviewer`
266
+ - Reviews completed implementation against issue requirements
267
+ - Posts review findings as a GitHub comment
268
+ - **Used for:** All issues (when review is requested)
269
+
270
+ All agent output is written to GitHub issue comments using markdown, making the AI's reasoning process transparent and collaborative. You can review, edit, or refine any comment before proceeding to the next phase.
271
+
272
+ ### A Note on Token Usage and Model Selection
273
+
274
+ iloom optimizes for **building shared understanding** and **long-term efficiency** over short-term token economy. The multi-phase workflow deliberately front-loads analysis and planning to reduce expensive implementation rework.
275
+
276
+ You can [configure](#configuration) the models used by the agents:
277
+
278
+ - **Default**: All agents run on the latest Sonnet model to balance capability and cost
279
+ - **Haiku for Implementation**: The `iloom-issue-implementer` agent is a good candidate for the latest Haiku model for token-conscious users, as it follows detailed plans created by analysis/planning agents
280
+ - **Maximum Power**: Override to Opus for complex architectural work (more expensive)
281
+
282
+ **Available agents** (all configurable):
283
+ - `iloom-issue-enhancer` - Structures issue descriptions from user perspective
284
+ - `iloom-issue-complexity-evaluator` - Assesses scope and determines workflow approach
285
+ - `iloom-issue-analyzer` - Investigates root causes (complex issues only)
286
+ - `iloom-issue-planner` - Creates implementation roadmap (complex issues only)
287
+ - `iloom-issue-analyze-and-plan` - Combined analysis and planning (simple issues only)
288
+ - `iloom-issue-implementer` - Executes implementation plans (good candidate for Haiku)
289
+ - `iloom-issue-reviewer` - Reviews completed implementations
290
+
291
+ **Hard-coded model usage** (not configurable):
292
+ - **Branch naming** - Uses the latest Haiku model to generate descriptive branch names from issue titles
293
+ - **Commit message generation** - Uses the latest Haiku model to create commit messages
294
+
295
+ Both operations use Haiku for fast, cost-effective AI assistance.
296
+
297
+ **Fun Fact**: iloom originally used Opus (over the latest Sonnet model) for analysis and planning phases. As agent prompts improved, we switched entirely to Sonnet with equivalent results at lower cost.
298
+
299
+ **Recommendation**: A Claude Max subscription is recommended. The theory is that token investment in structured/shared context pays dividends through reduced debugging, rework, and cognitive overhead.
300
+
301
+ ## Commands
302
+
303
+ ### Loom Management
304
+
305
+ ```bash
306
+ iloom start <issue-number | pr-number | issue-description | branch-name>
307
+ # Create loom with complete context
308
+ # Orchestrates AI agents that analyze the issue and post structured comments
309
+ # Phases: Enhancement → Analysis → Planning → Implementation with review checkpoints at every step
310
+ # Aliases: create, up
311
+ # Options:
312
+ # --one-shot <mode> - Automation level for Claude CLI
313
+ # default: Standard behavior with prompts
314
+ # noReview: Skip phase approval prompts
315
+ # bypassPermissions: Full automation, skip all permission prompts. Be careful!
316
+
317
+ iloom finish
318
+ # AI assisted validation, commit, merge steps, as well as loom cleanup (run this from the loom directory)
319
+ # Alias: dn
320
+
321
+ iloom rebase
322
+ # Rebase current branch on main with Claude-assisted conflict resolution (run this from a loom directory)
323
+ # Options:
324
+ # -f, --force - Skip confirmation prompts
325
+ # -n, --dry-run - Preview actions without executing
326
+
327
+ iloom cleanup [identifier...]
328
+ # Remove a loom without merging (safely, by default)
329
+
330
+ iloom list
331
+ # Show active looms with their ports and paths
332
+
333
+ iloom spin
334
+ # Launch Claude with auto-detected loom context
335
+ # Options:
336
+ # --one-shot=<mode> - Same automation modes as 'start'
337
+
338
+ iloom open [identifier]
339
+ # Open loom in browser (web projects) or run configured CLI tool
340
+ ```
341
+
342
+ ### Issue Management
343
+
344
+ ```bash
345
+ iloom add-issue <description>
346
+ # Create and AI-enhance GitHub issue (doesn't spin up a loom)
347
+ # Alias: a
348
+ # Example: il add-issue "Add dark mode toggle to settings"
349
+
350
+ iloom enhance <issue-number>
351
+ # Apply AI enhancement agent to existing GitHub issue
352
+ # Expands requirements, asks clarifying questions and adds implementation context
353
+ ```
354
+
355
+ ## Providing Feedback
356
+
357
+ Found a bug, have a feature request, or want to contribute ideas to improve iloom CLI? Submit feedback directly from your terminal.
358
+
359
+ ```bash
360
+ iloom feedback <description>
361
+ # Submit feedback/bug report to iloom-cli repository
362
+ # Alias: f
363
+ # Example: il feedback "Add support for Linear issue tracking"
364
+ # Example: il feedback "The worktree cleanup seems to leave temp files behind"
365
+ ```
366
+
367
+ **What happens when you run `iloom feedback`:**
368
+
369
+ 1. **Issue Creation**: Creates a new issue in the [iloom-cli repository](https://github.com/iloom-ai/iloom-cli)
370
+ 2. **Browser Opening**: Opens the created issue in your browser for you to review and add additional context
371
+ 3. **AI Enhancement**: Within a couple of minutes, your feedback gets enhanced by iloom to provide clear context and actionable details
372
+
373
+ **Open the browser to provide additional context. Please:**
374
+ - Be specific about what you expected vs. what happened
375
+ - Include your environment details if reporting a bug (OS, Node version, etc.)
376
+ - Mention the command or workflow that had issues
377
+ - Suggest improvements or alternative approaches if you have ideas
378
+
379
+ Your feedback helps make iloom better for everyone! Issues created through `iloom feedback` are prioritized and reviewed regularly.
380
+
381
+ ### Maintenance
382
+
383
+ ```bash
384
+ iloom init
385
+ # Interactive Claude-powered configuration wizard
386
+ # Sets up settings.json, .gitignore, and guides you through all configuration options
387
+ # Automatically detects multi-remote setups and helps you configure GitHub integration
388
+ # Alias: il config
389
+ # Run this once per project
390
+
391
+ iloom contribute
392
+ # Set up local development environment for contributing to iloom
393
+ # Automatically forks the repository, clones it locally, configures upstream remote,
394
+ # and runs il init to complete setup
395
+ # Streamlines contributor onboarding with a single command
396
+
397
+ iloom update
398
+ # Update iloom-cli to the latest version
399
+ ```
400
+
401
+ ## Configuration
402
+
403
+ ### Interactive Configuration Wizard
404
+
405
+ The recommended way to configure iloom:
406
+
407
+ ```bash
408
+ iloom init
409
+ # or
410
+ il config
411
+ ```
412
+
413
+ This Claude-powered assistant will guide you through all configuration options and automatically:
414
+ - Create and configure `.iloom/settings.json` and `.iloom/settings.local.json`
415
+ - Set up `.gitignore` entries
416
+ - Help you choose the right GitHub remote (if you have multiple)
417
+ - Configure database providers (Neon, etc.)
418
+ - Set workflow permissions and preferences
419
+ - Explain each option as you go
420
+
421
+ For most users, this is all you need. The wizard creates the files and explains everything as you configure it.
422
+
423
+ ### Manual Configuration Files
424
+
425
+ If you prefer manual configuration, iloom uses these files (highest to lowest priority):
426
+
427
+ 1. **CLI arguments** - Command-line flags (e.g., `--one-shot bypassPermissions`)
428
+ 2. **`.iloom/settings.local.json`** - Local machine settings (gitignored, not committed)
429
+ 3. **`.iloom/settings.json`** - Project-wide settings (committed to repository)
430
+ 4. **Built-in defaults** - Hardcoded fallback values
431
+
432
+ This allows teams to share project defaults via `settings.json` while individual developers maintain personal overrides in `settings.local.json`.
433
+
434
+ **Example Use Cases:**
435
+ - Developer needs different `basePort` due to port conflicts
436
+ - Local database connection strings that differ from team defaults
437
+ - Personal preferences for `permissionMode` or component launch flags
438
+
439
+ **Note:** The `.iloom/settings.local.json` file is automatically created and gitignored when you run `il init`.
440
+
441
+ ### Key Configuration:
442
+
443
+ ```jsonc
444
+ {
445
+ "mainBranch": "main",
446
+ "capabilities": {
447
+ "web": { "basePort": 3000 },
448
+ "database": { "databaseUrlEnvVarName": "DATABASE_URL" }
449
+ },
450
+ "databaseProviders": {
451
+ "neon": {
452
+ "projectId": "fantastic-fox-3566354",
453
+ "parentBranch": "main"
454
+ }
455
+ },
456
+ "workflows": {
457
+ "issue": {
458
+ "permissionMode": "default",
459
+ "startIde": true,
460
+ "startDevServer": true,
461
+ "startAiAgent": true,
462
+ "startTerminal": false
463
+ }
464
+ },
465
+ "agents": {
466
+ "iloom-issue-enhancer": {"model":"opus"},
467
+ "iloom-issue-analyzer": {"model":"opus"},
468
+ "iloom-issue-analyze-and-plan": {"model":"opus"},
469
+ "iloom-issue-implementer": {"model":"haiku"}
470
+ }
471
+ }
472
+ ```
473
+
474
+ **Note on agent configuration:** All agents use the latest Sonnet model by default, except complexity evaluator which uses Haiku. You could also try a some different configurations:
475
+ - **Opus for analysis/enhancement** - Maximum reasoning capability for understanding requirements and planning
476
+ - **Haiku for implementation** - Cost-effective execution of detailed plans (recommended for token-conscious users)
477
+
478
+ ** Common configuration options:**
479
+ - `mainBranch` - Primary branch for merging (default: "main")
480
+ - `capabilities.web.basePort` - Base port for dev servers (default: 3000)
481
+ - `capabilities.database.databaseUrlEnvVarName` - Name of environment variable for database connection URL (default: "DATABASE_URL")
482
+ - `databaseProviders.neon.projectId` - Neon project ID (found in project URL, e.g., "fantastic-fox-3566354")
483
+ - `databaseProviders.neon.parentBranch` - Branch from which new database branches are created (default: "main")
484
+ - `workflows` - Per-workflow Claude CLI permission modes and tool launching
485
+ - `agents` - Claude model selection (sonnet/opus/haiku) per agent type
486
+
487
+ All options can be specified in either `settings.json` (project-wide) or `settings.local.json` (local overrides, gitignored).
488
+
489
+ Port calculation: `assignedPort = basePort + issueNumber`
490
+ Example: Issue #25 with basePort 3000 = port 3025
491
+
492
+ For complete configuration reference, see [.iloom/README.md](./.iloom/README.md)
493
+
494
+ ## Requirements
495
+
496
+ **Essential:**
497
+ - Claude CLI - AI assistance with issue context preloaded
498
+ - Node.js 16+
499
+ - Git 2.5+ (for worktree support)
500
+ - GitHub CLI (`gh`) - authenticated with your repository
501
+
502
+ **Recommended**
503
+ - A Claude Max subscription - iloom uses your own subscription
504
+
505
+ **Optional (auto-detected):**
506
+ - **Neon CLI** - Isolated database branches per loom
507
+ - **VS Code** - Color-coded editor windows for visual context
508
+ - **iTerm2** (macOS only) - Enhanced terminal experience with dual tabs in a single window (when configured to open both Claude and start a dev server)
509
+
510
+ Optional features activate automatically when detected.
511
+
512
+ ## Platform & Integration Support
513
+
514
+ This is an early stage product - platform/tech stack support is limited for now.
515
+
516
+ **Current Platform Support:**
517
+ - ✅ **macOS** - Fully tested and supported
518
+ - ⚠️ **Linux/Windows** - Not yet tested, may work with modifications
519
+
520
+ **Issue Tracking Integration:**
521
+ - ✅ **GitHub Issues** - Full support with AI enhancement, analysis, and planning
522
+ - 🚧 **Linear** - Native integration coming soon. A two way sync between Linear and your github repo works great currently.
523
+
524
+ **Project Type Support:**
525
+ - ✅ **Node.js web projects** - First-class support via package.json scripts (`dev`, `test`, `build`)
526
+ - ✅ **Node.js CLI tools** - Full support with isolated executables (see below)
527
+ - 🔧 **Other tech stacks** - Can work now via package.json scripts, native support coming later (open to help!)
528
+
529
+ We (Claude and I) are actively working on expanding platform and integration support. Contributions welcome!
530
+
531
+ ## Installation
532
+
533
+ ```bash
534
+ # Install globally
535
+ > npm install -g @iloom/cli
536
+
537
+ # Authenticate with GitHub
538
+ > gh auth login
539
+ # do `gh auth login --scopes project` to automatically move issues to in progress
540
+
541
+ # Initialize in your project
542
+ > cd your-project
543
+ > il init
544
+
545
+ # Start working
546
+ > il start 25 # existing issue
547
+ > il start "Enable log in/sign up with Google account" # new issue
548
+ ```
549
+
550
+ ## Pull Request Support
551
+
552
+ iloom works identically with GitHub pull requests:
553
+
554
+ ```bash
555
+ > il start 125 # PR number instead of issue number
556
+ ```
557
+
558
+ Automatically detects PR, fetches the branch, and creates loom with PR context. Everything else works the same.
559
+
560
+ ## Architecture
561
+
562
+ **Technologies:**
563
+ - TypeScript CLI built with Commander.js
564
+ - Git worktrees for loom isolation
565
+ - GitHub CLI integration for issues/PRs
566
+ - Integration with node-based web servers via standard package.json scripts
567
+ - Database branching (Neon) - optional
568
+ - Claude CLI integration for AI assistance to resolve compilation/test/lint/merge errors
569
+
570
+ **Project structure:**
571
+ ```
572
+ src/
573
+ ├── commands/ # CLI commands (start, finish, cleanup, list, add-issue, enhance, spin, init, open)
574
+ ├── lib/ # Core business logic (WorkspaceManager, GitWorktreeManager, etc.)
575
+ ├── utils/ # Utility functions (git, github, env, database, shell)
576
+ └── types/ # TypeScript definitions
577
+ ```
578
+
579
+ For development guidelines and testing strategy, see [CLAUDE.md](./CLAUDE.md).
580
+
581
+ ### Node.js Web Project Support
582
+
583
+ iloom provides first-class support for Node.js web applications (next/express/vite, etc) through standardized package.json scripts:
584
+
585
+ **Required scripts** (auto-detected):
586
+ - `dev` - Start development server (launched automatically with unique port)
587
+ - `test` - Run test suite (executed during `il finish` validation)
588
+
589
+ **Optional scripts**:
590
+ - `lint` - Code quality checks (run during `il finish` if present)
591
+ - `typecheck` - TypeScript validation (run during `il finish` if present)
592
+
593
+ **How it integrates:**
594
+
595
+ ```bash
596
+ > il start 25
597
+ # ✅ Runs `pnpm install` in worktree
598
+ # ✅ Launches `pnpm dev` on port 3025 (3000 + issue number)
599
+ # ✅ Sets up database branch with correct DATABASE_URL
600
+
601
+ > il finish
602
+ # ✅ Runs `pnpm test` (fails if tests fail)
603
+ # ✅ Runs `pnpm typecheck` if configured
604
+ # ✅ Runs `pnpm lint` if configured
605
+ # ✅ AI assists with any failures automatically
606
+ ```
607
+
608
+ ### Node.js CLI Tool Support
609
+
610
+ iloom was built using iloom itself. CLI tools get the same isolation benefits as web projects, plus **isolated executable access per loom**.
611
+
612
+ **How it works:**
613
+
614
+ When you create a loom for a CLI project, iloom creates workspace-specific binaries so you can test each issue's version independently:
615
+
616
+ ```bash
617
+ > il start 52 # Working on CLI feature in issue 52
618
+ > cli-tool-52 --version # Test issue 52's version
619
+
620
+ > il start 137 # Switch to different CLI issue
621
+ > cli-tool-137 --help # Test issue 137's version
622
+
623
+ # Original binary still works from main branch
624
+ > cli-tool --version # Unaffected by iloom CLIs
625
+ ```
626
+
627
+ **Binary naming**: `<original-name>-<issue/pr-number>`
628
+ - Binary named in package.json's "bin" object: `cli-tool`
629
+ - Issue 52: `cli-tool-52`
630
+ - Issue 137: `cli-tool-137`
631
+ - PR 200: `cli-tool-200`
632
+
633
+ **Cleanup**: When you run `il finish`, the workspace-specific binary is automatically removed along with the worktree and any database branches.
634
+
635
+ This enables parallel development and testing of CLI features without conflicts or manual PATH manipulation.
636
+
637
+
638
+
639
+ **Other tech stacks**: Projects using different languages/frameworks can work with iloom by providing compatible package.json scripts that wrap their native tooling. Native support for additional tech stacks is planned (but probably not for a while).
640
+
641
+ ## Roadmap
642
+
643
+ **Currently in Development** - Actively developing this CLI tool, with the intent to support more workflow flexibility and different tech stacks, task management tools and DB providers.
644
+
645
+ ### Understanding Git Worktrees
646
+
647
+ A Git worktree is a separate working directory for the same repository. Instead of switching branches in one directory, you have multiple directories with different branches checked out simultaneously.
648
+
649
+ Traditional approach:
650
+ ```bash
651
+ > git checkout feature-a # Switch branch
652
+ # Edit files
653
+ > git stash # Save work
654
+ > git checkout feature-b # Switch branch again
655
+ # Edit different files
656
+ > git stash pop # Restore work
657
+ > git checkout feature-a # Switch back
658
+ ```
659
+
660
+ Git worktree approach:
661
+ ```bash
662
+ # All exist simultaneously:
663
+ ~/project-looms/issue-25/ # feature-a checked out
664
+ ~/project-looms/issue-30/ # feature-b checked out
665
+ ~/project/ # main branch
666
+
667
+ # No branch switching, no stashing, less confusion
668
+ ```
669
+
670
+ This is the foundation that enables loom isolation and persistent context. Other awesome tools use worktrees too.
671
+
672
+ ### When to Choose Other Git Worktree Solutions
673
+
674
+ iloom isn't the only tool that makes git worktrees more accessible. Several excellent alternatives exist, each with different trade-offs:
675
+
676
+ **Editor-Integrated Solutions:**
677
+ - [VS Code Git Worktrees](https://marketplace.visualstudio.com/items?itemName=GitWorktrees.git-worktrees) - Enhanced Git worktree support in VS Code
678
+ - [git-worktree.nvim](https://github.com/ThePrimeagen/git-worktree.nvim) - Neovim plugin for rapid worktree management
679
+
680
+ **Apps**
681
+ - [Crystal](https://github.com/stravu/crystal) - Run multiple Codex and Claude Code AI sessions in parallel git worktrees
682
+ - [Conductor](https://conductor.build/) - Run a team of coding agents on your Mac
683
+
684
+ **CLI Helpers:**
685
+ - [git-worktree-wrapper](https://github.com/lu0/git-worktree-wrapper) - Manage Git worktrees with `git checkout` and `git branch` commands.
686
+
687
+ **What They Do Well:**
688
+ - Reduce friction of git worktree CLI commands
689
+ - Integrate tightly with your editor workflow
690
+ - Minimal learning curve if you know git
691
+ - Lightweight - just worktree management, nothing more
692
+ - Conductor and Crystal help you with Agentic coding too
693
+
694
+ **Where iloom Differs:**
695
+
696
+ Most tools focus on **making git worktrees easier to use**, some add-in Agentic coding too. iloom focuses on **making multi-issue AI-assisted development sustainable**.
697
+
698
+ **Beyond Worktrees:**
699
+ - **Database isolation**: Neon branch integration for schema/data separation
700
+ - **AI context persistence**: Structured analysis stored in GitHub comments, not local chat history
701
+ - **Cognitive overhead reduction**: Color coding, port assignment, environment setup handled automatically
702
+ - **Human-AI alignment**: Multi-phase workflow surfaces assumptions before code is written
703
+ - **Validation automation**: AI-assisted error fixing during merge process
704
+
705
+ **The Trade-off:**
706
+
707
+ Other tools increase code output with minimal process change. iloom increases **sustainable velocity** with a prescriptive workflow. You trade flexibility for:
708
+ - Persistent shared understanding between you and your AI
709
+ - Reduced time debugging AI misunderstandings
710
+ - Less context switching mental overhead
711
+ - Complete environment isolation (not just git)
712
+
713
+ **Choose other solutions if:**
714
+ - You primarily work solo without AI assistance
715
+ - You want minimal workflow changes
716
+ - You just need easier git worktree commands
717
+ - You don't see yourself working on multiple tasks at once
718
+
719
+ **Choose iloom if:**
720
+ - You're scaling AI-assisted development across multiple issues
721
+ - Cognitive overhead is limiting your velocity more than coding speed
722
+ - You work on projects with database schemas that change per feature
723
+ - You want AI analysis and planning visible to your whole team
724
+
725
+ ## Contributing
726
+
727
+ This project follows Test-Driven Development. All code must:
728
+ - Be written test-first with comprehensive unit tests
729
+ - Achieve >70% code coverage
730
+ - Include regression tests against bash script behavior
731
+ - Use mock factories for all external dependencies
732
+
733
+ ## License
734
+
735
+ **Business Source License 1.1** - Free to use for any purpose, including commercial use within your organization.
736
+
737
+ **You can:**
738
+ - ✅ Use freely in your organization and commercial projects
739
+ - ✅ Modify and distribute internally
740
+ - ✅ Build paid applications with it
741
+
742
+ **You cannot:**
743
+ - ❌ Resell iloom itself as a product or service
744
+ - ❌ Incorporate into products/services you sell to others
745
+ - ❌ Offer as a hosted service or SaaS
746
+
747
+ **Converts to Apache 2.0 on 2029-01-01** - Becomes fully open source automatically.
748
+
749
+ For commercial licensing inquiries, contact Adam Creeger.
750
+
751
+ See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
752
+
753
+ ## About the Name
754
+
755
+ **iloom** comes from "illuminate" - it illuminates the mysterious AI coding process - and "intelligent loom" that weaves artificial and human intelligence together.