@iloom/cli 0.1.14

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 (161) hide show
  1. package/LICENSE +33 -0
  2. package/README.md +711 -0
  3. package/dist/ClaudeContextManager-XOSXQ67R.js +13 -0
  4. package/dist/ClaudeContextManager-XOSXQ67R.js.map +1 -0
  5. package/dist/ClaudeService-YSZ6EXWP.js +12 -0
  6. package/dist/ClaudeService-YSZ6EXWP.js.map +1 -0
  7. package/dist/GitHubService-F7Z3XJOS.js +11 -0
  8. package/dist/GitHubService-F7Z3XJOS.js.map +1 -0
  9. package/dist/LoomLauncher-MODG2SEM.js +263 -0
  10. package/dist/LoomLauncher-MODG2SEM.js.map +1 -0
  11. package/dist/NeonProvider-PAGPUH7F.js +12 -0
  12. package/dist/NeonProvider-PAGPUH7F.js.map +1 -0
  13. package/dist/PromptTemplateManager-7FINLRDE.js +9 -0
  14. package/dist/PromptTemplateManager-7FINLRDE.js.map +1 -0
  15. package/dist/SettingsManager-VAZF26S2.js +19 -0
  16. package/dist/SettingsManager-VAZF26S2.js.map +1 -0
  17. package/dist/SettingsMigrationManager-MTQIMI54.js +146 -0
  18. package/dist/SettingsMigrationManager-MTQIMI54.js.map +1 -0
  19. package/dist/add-issue-22JBNOML.js +54 -0
  20. package/dist/add-issue-22JBNOML.js.map +1 -0
  21. package/dist/agents/iloom-issue-analyze-and-plan.md +580 -0
  22. package/dist/agents/iloom-issue-analyzer.md +290 -0
  23. package/dist/agents/iloom-issue-complexity-evaluator.md +224 -0
  24. package/dist/agents/iloom-issue-enhancer.md +266 -0
  25. package/dist/agents/iloom-issue-implementer.md +262 -0
  26. package/dist/agents/iloom-issue-planner.md +358 -0
  27. package/dist/agents/iloom-issue-reviewer.md +63 -0
  28. package/dist/chunk-2ZPFJQ3B.js +63 -0
  29. package/dist/chunk-2ZPFJQ3B.js.map +1 -0
  30. package/dist/chunk-37DYYFVK.js +29 -0
  31. package/dist/chunk-37DYYFVK.js.map +1 -0
  32. package/dist/chunk-BLCTGFZN.js +121 -0
  33. package/dist/chunk-BLCTGFZN.js.map +1 -0
  34. package/dist/chunk-CP2NU2JC.js +545 -0
  35. package/dist/chunk-CP2NU2JC.js.map +1 -0
  36. package/dist/chunk-CWR2SANQ.js +39 -0
  37. package/dist/chunk-CWR2SANQ.js.map +1 -0
  38. package/dist/chunk-F3XBU2R7.js +110 -0
  39. package/dist/chunk-F3XBU2R7.js.map +1 -0
  40. package/dist/chunk-GEHQXLEI.js +130 -0
  41. package/dist/chunk-GEHQXLEI.js.map +1 -0
  42. package/dist/chunk-GYCR2LOU.js +143 -0
  43. package/dist/chunk-GYCR2LOU.js.map +1 -0
  44. package/dist/chunk-GZP4UGGM.js +48 -0
  45. package/dist/chunk-GZP4UGGM.js.map +1 -0
  46. package/dist/chunk-H4E4THUZ.js +55 -0
  47. package/dist/chunk-H4E4THUZ.js.map +1 -0
  48. package/dist/chunk-HPJJSYNS.js +644 -0
  49. package/dist/chunk-HPJJSYNS.js.map +1 -0
  50. package/dist/chunk-JBH2ZYYZ.js +220 -0
  51. package/dist/chunk-JBH2ZYYZ.js.map +1 -0
  52. package/dist/chunk-JNKJ7NJV.js +78 -0
  53. package/dist/chunk-JNKJ7NJV.js.map +1 -0
  54. package/dist/chunk-JQ7VOSTC.js +437 -0
  55. package/dist/chunk-JQ7VOSTC.js.map +1 -0
  56. package/dist/chunk-KQDEK2ZW.js +199 -0
  57. package/dist/chunk-KQDEK2ZW.js.map +1 -0
  58. package/dist/chunk-O2QWO64Z.js +179 -0
  59. package/dist/chunk-O2QWO64Z.js.map +1 -0
  60. package/dist/chunk-OC4H6HJD.js +248 -0
  61. package/dist/chunk-OC4H6HJD.js.map +1 -0
  62. package/dist/chunk-PR7FKQBG.js +120 -0
  63. package/dist/chunk-PR7FKQBG.js.map +1 -0
  64. package/dist/chunk-PXZBAC2M.js +250 -0
  65. package/dist/chunk-PXZBAC2M.js.map +1 -0
  66. package/dist/chunk-QEPVTTHD.js +383 -0
  67. package/dist/chunk-QEPVTTHD.js.map +1 -0
  68. package/dist/chunk-RSRO7564.js +203 -0
  69. package/dist/chunk-RSRO7564.js.map +1 -0
  70. package/dist/chunk-SJUQ2NDR.js +146 -0
  71. package/dist/chunk-SJUQ2NDR.js.map +1 -0
  72. package/dist/chunk-SPYPLHMK.js +177 -0
  73. package/dist/chunk-SPYPLHMK.js.map +1 -0
  74. package/dist/chunk-SSCQCCJ7.js +75 -0
  75. package/dist/chunk-SSCQCCJ7.js.map +1 -0
  76. package/dist/chunk-SSR5AVRJ.js +41 -0
  77. package/dist/chunk-SSR5AVRJ.js.map +1 -0
  78. package/dist/chunk-T7QPXANZ.js +315 -0
  79. package/dist/chunk-T7QPXANZ.js.map +1 -0
  80. package/dist/chunk-U3WU5OWO.js +203 -0
  81. package/dist/chunk-U3WU5OWO.js.map +1 -0
  82. package/dist/chunk-W3DQTW63.js +124 -0
  83. package/dist/chunk-W3DQTW63.js.map +1 -0
  84. package/dist/chunk-WKEWRSDB.js +151 -0
  85. package/dist/chunk-WKEWRSDB.js.map +1 -0
  86. package/dist/chunk-Y7SAGNUT.js +66 -0
  87. package/dist/chunk-Y7SAGNUT.js.map +1 -0
  88. package/dist/chunk-YETJNRQM.js +39 -0
  89. package/dist/chunk-YETJNRQM.js.map +1 -0
  90. package/dist/chunk-YYSKGAZT.js +384 -0
  91. package/dist/chunk-YYSKGAZT.js.map +1 -0
  92. package/dist/chunk-ZZZWQGTS.js +169 -0
  93. package/dist/chunk-ZZZWQGTS.js.map +1 -0
  94. package/dist/claude-7LUVDZZ4.js +17 -0
  95. package/dist/claude-7LUVDZZ4.js.map +1 -0
  96. package/dist/cleanup-3LUWPSM7.js +412 -0
  97. package/dist/cleanup-3LUWPSM7.js.map +1 -0
  98. package/dist/cli-overrides-XFZWY7CM.js +16 -0
  99. package/dist/cli-overrides-XFZWY7CM.js.map +1 -0
  100. package/dist/cli.js +603 -0
  101. package/dist/cli.js.map +1 -0
  102. package/dist/color-ZVALX37U.js +21 -0
  103. package/dist/color-ZVALX37U.js.map +1 -0
  104. package/dist/enhance-XJIQHVPD.js +166 -0
  105. package/dist/enhance-XJIQHVPD.js.map +1 -0
  106. package/dist/env-MDFL4ZXL.js +23 -0
  107. package/dist/env-MDFL4ZXL.js.map +1 -0
  108. package/dist/feedback-23CLXKFT.js +158 -0
  109. package/dist/feedback-23CLXKFT.js.map +1 -0
  110. package/dist/finish-CY4CIH6O.js +1608 -0
  111. package/dist/finish-CY4CIH6O.js.map +1 -0
  112. package/dist/git-LVRZ57GJ.js +43 -0
  113. package/dist/git-LVRZ57GJ.js.map +1 -0
  114. package/dist/ignite-WXEF2ID5.js +359 -0
  115. package/dist/ignite-WXEF2ID5.js.map +1 -0
  116. package/dist/index.d.ts +1341 -0
  117. package/dist/index.js +3058 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/init-RHACUR4E.js +123 -0
  120. package/dist/init-RHACUR4E.js.map +1 -0
  121. package/dist/installation-detector-VARGFFRZ.js +11 -0
  122. package/dist/installation-detector-VARGFFRZ.js.map +1 -0
  123. package/dist/logger-MKYH4UDV.js +12 -0
  124. package/dist/logger-MKYH4UDV.js.map +1 -0
  125. package/dist/mcp/chunk-6SDFJ42P.js +62 -0
  126. package/dist/mcp/chunk-6SDFJ42P.js.map +1 -0
  127. package/dist/mcp/claude-YHHHLSXH.js +249 -0
  128. package/dist/mcp/claude-YHHHLSXH.js.map +1 -0
  129. package/dist/mcp/color-QS5BFCNN.js +168 -0
  130. package/dist/mcp/color-QS5BFCNN.js.map +1 -0
  131. package/dist/mcp/github-comment-server.js +165 -0
  132. package/dist/mcp/github-comment-server.js.map +1 -0
  133. package/dist/mcp/terminal-SDCMDVD7.js +202 -0
  134. package/dist/mcp/terminal-SDCMDVD7.js.map +1 -0
  135. package/dist/open-X6BTENPV.js +278 -0
  136. package/dist/open-X6BTENPV.js.map +1 -0
  137. package/dist/prompt-ANTQWHUF.js +13 -0
  138. package/dist/prompt-ANTQWHUF.js.map +1 -0
  139. package/dist/prompts/issue-prompt.txt +230 -0
  140. package/dist/prompts/pr-prompt.txt +35 -0
  141. package/dist/prompts/regular-prompt.txt +14 -0
  142. package/dist/run-2JCPQAX3.js +278 -0
  143. package/dist/run-2JCPQAX3.js.map +1 -0
  144. package/dist/schema/settings.schema.json +221 -0
  145. package/dist/start-LWVRBJ6S.js +982 -0
  146. package/dist/start-LWVRBJ6S.js.map +1 -0
  147. package/dist/terminal-3D6TUAKJ.js +16 -0
  148. package/dist/terminal-3D6TUAKJ.js.map +1 -0
  149. package/dist/test-git-XPF4SZXJ.js +52 -0
  150. package/dist/test-git-XPF4SZXJ.js.map +1 -0
  151. package/dist/test-prefix-XGFXFAYN.js +68 -0
  152. package/dist/test-prefix-XGFXFAYN.js.map +1 -0
  153. package/dist/test-tabs-JRKY3QMM.js +69 -0
  154. package/dist/test-tabs-JRKY3QMM.js.map +1 -0
  155. package/dist/test-webserver-M2I3EV4J.js +62 -0
  156. package/dist/test-webserver-M2I3EV4J.js.map +1 -0
  157. package/dist/update-3ZT2XX2G.js +79 -0
  158. package/dist/update-3ZT2XX2G.js.map +1 -0
  159. package/dist/update-notifier-QSSEB5KC.js +11 -0
  160. package/dist/update-notifier-QSSEB5KC.js.map +1 -0
  161. package/package.json +113 -0
package/README.md ADDED
@@ -0,0 +1,711 @@
1
+ # iloom
2
+
3
+ <div align="center">
4
+
5
+ [![npm](https://img.shields.io/npm/v/%40iloom-ai%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
+ When you juggle multiple issues, the hard part is not branches or ports. It is keeping you and your AI aligned on the goal.
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 as you work across multiple issues simultaneously.*
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 cleanup [identifier...]
322
+ # Remove a loom without merging (safely, by default)
323
+
324
+ iloom list
325
+ # Show active looms with their ports and paths
326
+
327
+ iloom spin
328
+ # Launch Claude with auto-detected loom context
329
+ # Options:
330
+ # --one-shot=<mode> - Same automation modes as 'start'
331
+
332
+ iloom open [identifier]
333
+ # Open loom in browser (web projects) or run configured CLI tool
334
+ ```
335
+
336
+ ### Issue Management
337
+
338
+ ```bash
339
+ iloom add-issue <description>
340
+ # Create and AI-enhance GitHub issue (doesn't spin up a loom)
341
+ # Alias: a
342
+ # Example: il add-issue "Add dark mode toggle to settings"
343
+
344
+ iloom enhance <issue-number>
345
+ # Apply AI enhancement agent to existing GitHub issue
346
+ # Expands requirements, asks clarifying questions and adds implementation context
347
+ ```
348
+
349
+ ## Providing Feedback
350
+
351
+ Found a bug, have a feature request, or want to contribute ideas to improve iloom CLI? Submit feedback directly from your terminal.
352
+
353
+ ```bash
354
+ iloom feedback <description>
355
+ # Submit feedback/bug report to iloom-cli repository
356
+ # Alias: f
357
+ # Example: il feedback "Add support for Linear issue tracking"
358
+ # Example: il feedback "The worktree cleanup seems to leave temp files behind"
359
+ ```
360
+
361
+ **What happens when you run `iloom feedback`:**
362
+
363
+ 1. **Issue Creation**: Creates a new issue in the [iloom-cli repository](https://github.com/iloom-ai/iloom-cli)
364
+ 2. **Browser Opening**: Opens the created issue in your browser for you to review and add additional context
365
+ 3. **AI Enhancement**: Within a couple of minutes, your feedback gets enhanced by iloom to provide clear context and actionable details
366
+
367
+ **Open the browser to provide additional context. Please:**
368
+ - Be specific about what you expected vs. what happened
369
+ - Include your environment details if reporting a bug (OS, Node version, etc.)
370
+ - Mention the command or workflow that had issues
371
+ - Suggest improvements or alternative approaches if you have ideas
372
+
373
+ Your feedback helps make iloom better for everyone! Issues created through `iloom feedback` are prioritized and reviewed regularly.
374
+
375
+ ### Maintenance
376
+
377
+ ```bash
378
+ iloom init
379
+ # Setup guide for shell autocomplete, settings file initialization (will do much more soon)
380
+ # Run this once per project
381
+
382
+ iloom update
383
+ # Update iloom-cli to the latest version
384
+ ```
385
+
386
+ ## Configuration
387
+
388
+ iloom uses a flexible configuration system with clear priority ordering.
389
+
390
+ ### Configuration Priority
391
+
392
+ Settings are loaded in this order (highest to lowest priority):
393
+
394
+ 1. **CLI arguments** - Command-line flags (e.g., `--one-shot bypassPermissions`)
395
+ 2. **`.iloom/settings.local.json`** - Local machine settings (gitignored, not committed)
396
+ 3. **`.iloom/settings.json`** - Project-wide settings (committed to repository)
397
+ 4. **Built-in defaults** - Hardcoded fallback values
398
+
399
+ This allows teams to share project defaults via `settings.json` while individual developers maintain personal overrides in `settings.local.json`.
400
+
401
+ **Example Use Cases:**
402
+ - Developer needs different `basePort` due to port conflicts
403
+ - Local database connection strings that differ from team defaults
404
+ - Personal preferences for `permissionMode` or component launch flags
405
+
406
+ **Note:** The `.iloom/settings.local.json` file is automatically created and gitignored when you run `il init`.
407
+
408
+ ### Key Configuration:
409
+
410
+ ```jsonc
411
+ {
412
+ "mainBranch": "main",
413
+ "capabilities": {
414
+ "web": { "basePort": 3000 },
415
+ "database": { "databaseUrlEnvVarName": "DATABASE_URL" }
416
+ },
417
+ "workflows": {
418
+ "issue": {
419
+ "permissionMode": "default",
420
+ "startIde": true,
421
+ "startDevServer": true,
422
+ "startAiAgent": true,
423
+ "startTerminal": false
424
+ }
425
+ },
426
+ "agents": {
427
+ "iloom-issue-enhancer": "sonnet",
428
+ "iloom-issue-analyzer": "sonnet",
429
+ "iloom-issue-analyze-and-plan": "sonnet",
430
+ "iloom-issue-implementer": "sonnet"
431
+ }
432
+ }
433
+ ```
434
+
435
+ **Note on agent configuration:** All agents use the latest Sonnet model by default. The example above shows a performance-optimized configuration:
436
+ - **Opus for analysis/enhancement** - Maximum reasoning capability for understanding requirements and planning
437
+ - **Haiku for implementation** - Cost-effective execution of detailed plans (recommended for token-conscious users)
438
+ - Other agents (complexity evaluator, planner, reviewer) remain on Sonnet by default
439
+
440
+ **Configuration options:**
441
+ - `mainBranch` - Primary branch for merging (default: "main")
442
+ - `capabilities.web.basePort` - Base port for dev servers (default: 3000)
443
+ - `capabilities.database.databaseUrlEnvVarName` - Name of environment variable for database connection URL (default: "DATABASE_URL")
444
+ - `workflows` - Per-workflow Claude CLI permission modes and tool launching
445
+ - `agents` - Claude model selection (sonnet/opus/haiku) per agent type
446
+
447
+ All options can be specified in either `settings.json` (project-wide) or `settings.local.json` (local overrides, gitignored).
448
+
449
+ Port calculation: `assignedPort = basePort + issueNumber`
450
+ Example: Issue #25 with basePort 3000 = port 3025
451
+
452
+ For complete configuration reference, see [.iloom/README.md](./.iloom/README.md)
453
+
454
+ ## Requirements
455
+
456
+ **Essential:**
457
+ - Claude CLI - AI assistance with issue context preloaded
458
+ - Node.js 16+
459
+ - Git 2.5+ (for worktree support)
460
+ - GitHub CLI (`gh`) - authenticated with your repository
461
+
462
+ **Recommended**
463
+ - A Claude Max subscription - iloom uses your own subscription
464
+
465
+ **Optional (auto-detected):**
466
+ - **Neon CLI** - Isolated database branches per loom
467
+ - **VS Code** - Color-coded editor windows for visual context
468
+ - **iTerm2** (macOS only) - Enhanced terminal experience with dual tabs in a single window (when configured to open both Claude and start a dev server)
469
+
470
+ Optional features activate automatically when detected.
471
+
472
+ ## Platform & Integration Support
473
+
474
+ This is an early stage product - platform/tech stack support is limited for now.
475
+
476
+ **Current Platform Support:**
477
+ - ✅ **macOS** - Fully tested and supported
478
+ - ⚠️ **Linux/Windows** - Not yet tested, may work with modifications
479
+
480
+ **Issue Tracking Integration:**
481
+ - ✅ **GitHub Issues** - Full support with AI enhancement, analysis, and planning
482
+ - 🚧 **Linear** - Native integration coming soon. A two way sync between Linear and your github repo works great currently.
483
+
484
+ **Project Type Support:**
485
+ - ✅ **Node.js web projects** - First-class support via package.json scripts (`dev`, `test`, `build`)
486
+ - ✅ **Node.js CLI tools** - Full support with isolated executables (see below)
487
+ - 🔧 **Other tech stacks** - Can work now via package.json scripts, native support coming later (open to help!)
488
+
489
+ We (Claude and I) are actively working on expanding platform and integration support. Contributions welcome!
490
+
491
+ ## Installation
492
+
493
+ ```bash
494
+ # Install globally
495
+ > npm install -g @iloom/cli
496
+
497
+ # Authenticate with GitHub
498
+ > gh auth login
499
+ # do `gh auth login --scopes project` to automatically move issues to in progress
500
+
501
+ # Initialize in your project
502
+ > cd your-project
503
+ > il init
504
+
505
+ # Start working
506
+ > il start 25 # existing issue
507
+ > il start "Enable log in/sign up with Google account" # new issue
508
+ ```
509
+
510
+ ## Pull Request Support
511
+
512
+ iloom works identically with GitHub pull requests:
513
+
514
+ ```bash
515
+ > il start 125 # PR number instead of issue number
516
+ ```
517
+
518
+ Automatically detects PR, fetches the branch, and creates loom with PR context. Everything else works the same.
519
+
520
+ ## Architecture
521
+
522
+ **Technologies:**
523
+ - TypeScript CLI built with Commander.js
524
+ - Git worktrees for loom isolation
525
+ - GitHub CLI integration for issues/PRs
526
+ - Integration with node-based web servers via standard package.json scripts
527
+ - Database branching (Neon) - optional
528
+ - Claude CLI integration for AI assistance to resolve compilation/test/lint/merge errors
529
+
530
+ **Project structure:**
531
+ ```
532
+ src/
533
+ ├── commands/ # CLI commands (start, finish, cleanup, list, add-issue, enhance, spin, init, open)
534
+ ├── lib/ # Core business logic (WorkspaceManager, GitWorktreeManager, etc.)
535
+ ├── utils/ # Utility functions (git, github, env, database, shell)
536
+ └── types/ # TypeScript definitions
537
+ ```
538
+
539
+ For development guidelines and testing strategy, see [CLAUDE.md](./CLAUDE.md).
540
+
541
+ ### Node.js Web Project Support
542
+
543
+ iloom provides first-class support for Node.js web applications (next/express/vite, etc) through standardized package.json scripts:
544
+
545
+ **Required scripts** (auto-detected):
546
+ - `dev` - Start development server (launched automatically with unique port)
547
+ - `test` - Run test suite (executed during `il finish` validation)
548
+
549
+ **Optional scripts**:
550
+ - `lint` - Code quality checks (run during `il finish` if present)
551
+ - `typecheck` - TypeScript validation (run during `il finish` if present)
552
+
553
+ **How it integrates:**
554
+
555
+ ```bash
556
+ > il start 25
557
+ # ✅ Runs `pnpm install` in worktree
558
+ # ✅ Launches `pnpm dev` on port 3025 (3000 + issue number)
559
+ # ✅ Sets up database branch with correct DATABASE_URL
560
+
561
+ > il finish
562
+ # ✅ Runs `pnpm test` (fails if tests fail)
563
+ # ✅ Runs `pnpm typecheck` if configured
564
+ # ✅ Runs `pnpm lint` if configured
565
+ # ✅ AI assists with any failures automatically
566
+ ```
567
+
568
+ ### Node.js CLI Tool Support
569
+
570
+ iloom was built using iloom itself. CLI tools get the same isolation benefits as web projects, plus **isolated executable access per loom**.
571
+
572
+ **How it works:**
573
+
574
+ When you create a loom for a CLI project, iloom creates workspace-specific binaries so you can test each issue's version independently:
575
+
576
+ ```bash
577
+ > il start 52 # Working on CLI feature in issue 52
578
+ > cli-tool-52 --version # Test issue 52's version
579
+
580
+ > il start 137 # Switch to different CLI issue
581
+ > cli-tool-137 --help # Test issue 137's version
582
+
583
+ # Original binary still works from main branch
584
+ > cli-tool --version # Unaffected by iloom CLIs
585
+ ```
586
+
587
+ **Binary naming**: `<original-name>-<issue/pr-number>`
588
+ - Binary named in package.json's "bin" object: `cli-tool`
589
+ - Issue 52: `cli-tool-52`
590
+ - Issue 137: `cli-tool-137`
591
+ - PR 200: `cli-tool-200`
592
+
593
+ **Cleanup**: When you run `il finish`, the workspace-specific binary is automatically removed along with the worktree and any database branches.
594
+
595
+ This enables parallel development and testing of CLI features without conflicts or manual PATH manipulation.
596
+
597
+
598
+
599
+ **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).
600
+
601
+ ## Roadmap
602
+
603
+ **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.
604
+
605
+ ### Understanding Git Worktrees
606
+
607
+ 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.
608
+
609
+ Traditional approach:
610
+ ```bash
611
+ > git checkout feature-a # Switch branch
612
+ # Edit files
613
+ > git stash # Save work
614
+ > git checkout feature-b # Switch branch again
615
+ # Edit different files
616
+ > git stash pop # Restore work
617
+ > git checkout feature-a # Switch back
618
+ ```
619
+
620
+ Git worktree approach:
621
+ ```bash
622
+ # All exist simultaneously:
623
+ ~/project-looms/issue-25/ # feature-a checked out
624
+ ~/project-looms/issue-30/ # feature-b checked out
625
+ ~/project/ # main branch
626
+
627
+ # No branch switching, no stashing, less confusion
628
+ ```
629
+
630
+ This is the foundation that enables loom isolation and persistent context. Other awesome tools use worktrees too.
631
+
632
+ ### When to Choose Other Git Worktree Solutions
633
+
634
+ iloom isn't the only tool that makes git worktrees more accessible. Several excellent alternatives exist, each with different trade-offs:
635
+
636
+ **Editor-Integrated Solutions:**
637
+ - [VS Code Git Worktrees](https://marketplace.visualstudio.com/items?itemName=GitWorktrees.git-worktrees) - Enhanced Git worktree support in VS Code
638
+ - [git-worktree.nvim](https://github.com/ThePrimeagen/git-worktree.nvim) - Neovim plugin for rapid worktree management
639
+
640
+ **Apps**
641
+ - [Crystal](https://github.com/stravu/crystal) - Run multiple Codex and Claude Code AI sessions in parallel git worktrees
642
+ - [Conductor](https://conductor.build/) - Run a team of coding agents on your Mac
643
+
644
+ **CLI Helpers:**
645
+ - [git-worktree-wrapper](https://github.com/lu0/git-worktree-wrapper) - Manage Git worktrees with `git checkout` and `git branch` commands.
646
+
647
+ **What They Do Well:**
648
+ - Reduce friction of git worktree CLI commands
649
+ - Integrate tightly with your editor workflow
650
+ - Minimal learning curve if you know git
651
+ - Lightweight - just worktree management, nothing more
652
+ - Conductor and Crystal help you with Agentic coding too
653
+
654
+ **Where iloom Differs:**
655
+
656
+ 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**.
657
+
658
+ **Beyond Worktrees:**
659
+ - **Database isolation**: Neon branch integration for schema/data separation
660
+ - **AI context persistence**: Structured analysis stored in GitHub comments, not local chat history
661
+ - **Cognitive overhead reduction**: Color coding, port assignment, environment setup handled automatically
662
+ - **Human-AI alignment**: Multi-phase workflow surfaces assumptions before code is written
663
+ - **Validation automation**: AI-assisted error fixing during merge process
664
+
665
+ **The Trade-off:**
666
+
667
+ Other tools increase code output with minimal process change. iloom increases **sustainable velocity** with a prescriptive workflow. You trade flexibility for:
668
+ - Persistent shared understanding between you and your AI
669
+ - Reduced time debugging AI misunderstandings
670
+ - Less context switching mental overhead
671
+ - Complete environment isolation (not just git)
672
+
673
+ **Choose other solutions if:**
674
+ - You primarily work solo without AI assistance
675
+ - You want minimal workflow changes
676
+ - You just need easier git worktree commands
677
+ - You don't see yourself working on multiple tasks at once
678
+
679
+ **Choose iloom if:**
680
+ - You're scaling AI-assisted development across multiple issues
681
+ - Cognitive overhead is limiting your velocity more than coding speed
682
+ - You work on projects with database schemas that change per feature
683
+ - You want AI analysis and planning visible to your whole team
684
+
685
+ ## Contributing
686
+
687
+ This project follows Test-Driven Development. All code must:
688
+ - Be written test-first with comprehensive unit tests
689
+ - Achieve >70% code coverage
690
+ - Include regression tests against bash script behavior
691
+ - Use mock factories for all external dependencies
692
+
693
+ ## License
694
+
695
+ **Business Source License 1.1** - Free to use for any purpose, including commercial use within your organization.
696
+
697
+ **You can:**
698
+ - ✅ Use freely in your organization and commercial projects
699
+ - ✅ Modify and distribute internally
700
+ - ✅ Build paid applications with it
701
+
702
+ **You cannot:**
703
+ - ❌ Resell iloom itself as a product or service
704
+ - ❌ Incorporate into products/services you sell to others
705
+ - ❌ Offer as a hosted service or SaaS
706
+
707
+ **Converts to Apache 2.0 on 2029-01-01** - Becomes fully open source automatically.
708
+
709
+ For commercial licensing inquiries, contact Adam Creeger.
710
+
711
+ See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.