@iloom/cli 0.3.0 → 0.3.1

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 (71) hide show
  1. package/README.md +228 -905
  2. package/dist/{BranchNamingService-3OQPRSWT.js → BranchNamingService-OMWKUYMM.js} +2 -2
  3. package/dist/ClaudeContextManager-3VXA6UPR.js +13 -0
  4. package/dist/ClaudeService-6CPK43N4.js +12 -0
  5. package/dist/{LoomLauncher-FLEMBCSQ.js → LoomLauncher-JF7JZMTZ.js} +5 -5
  6. package/dist/README.md +228 -905
  7. package/dist/{SettingsManager-WHHFGSL7.js → SettingsManager-ZCWJ56WP.js} +2 -2
  8. package/dist/{chunk-MAVL6PJF.js → chunk-4BGK7T6X.js} +3 -3
  9. package/dist/{chunk-VAYCCUXW.js → chunk-4E4LD3QR.js} +2 -2
  10. package/dist/{chunk-5EF7Z346.js → chunk-HBYZH6GD.js} +11 -9
  11. package/dist/chunk-HBYZH6GD.js.map +1 -0
  12. package/dist/{chunk-3KATJIKO.js → chunk-INW24J2W.js} +2 -2
  13. package/dist/chunk-INW24J2W.js.map +1 -0
  14. package/dist/{chunk-AWOFAD5O.js → chunk-IXKLYTWO.js} +4 -4
  15. package/dist/{chunk-ML3NRPNB.js → chunk-O5OH5MRX.js} +3 -3
  16. package/dist/chunk-O5OH5MRX.js.map +1 -0
  17. package/dist/{chunk-4HHRTA7Q.js → chunk-TSKY3JI7.js} +3 -3
  18. package/dist/{chunk-4HHRTA7Q.js.map → chunk-TSKY3JI7.js.map} +1 -1
  19. package/dist/{chunk-FIAT22G7.js → chunk-U5QDY7ZD.js} +3 -3
  20. package/dist/{chunk-C5QCTEQK.js → chunk-XPKDPZ5D.js} +2 -2
  21. package/dist/{chunk-47KSHUCR.js → chunk-ZBQVSHVT.js} +4 -4
  22. package/dist/chunk-ZBQVSHVT.js.map +1 -0
  23. package/dist/{chunk-XXV3UFZL.js → chunk-ZWFBBPJI.js} +5 -5
  24. package/dist/{chunk-XXV3UFZL.js.map → chunk-ZWFBBPJI.js.map} +1 -1
  25. package/dist/{claude-GOP6PFC7.js → claude-LUZ35IMK.js} +2 -2
  26. package/dist/{cleanup-7RWLBSLE.js → cleanup-3MONU4PU.js} +10 -10
  27. package/dist/{cleanup-7RWLBSLE.js.map → cleanup-3MONU4PU.js.map} +1 -1
  28. package/dist/cli.js +32 -32
  29. package/dist/cli.js.map +1 -1
  30. package/dist/{contribute-BS2L4FZR.js → contribute-UWJAGIG7.js} +2 -2
  31. package/dist/{feedback-N4ECWIPF.js → feedback-W3BXTGIM.js} +4 -4
  32. package/dist/{git-TDXKRTXM.js → git-34Z6QVDS.js} +2 -2
  33. package/dist/{ignite-VM64QO3J.js → ignite-KVJEFXNO.js} +5 -5
  34. package/dist/index.js +3 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/{init-G3T64SC4.js → init-L55Q73H4.js} +5 -5
  37. package/dist/{open-KXDXEKRZ.js → open-LNRZL3UU.js} +4 -4
  38. package/dist/prompts/init-prompt.txt +3 -3
  39. package/dist/{rebase-Q7GMM7EI.js → rebase-C4WNCVGM.js} +6 -6
  40. package/dist/{run-PAWJJCSX.js → run-IOGNIOYN.js} +4 -4
  41. package/dist/schema/settings.schema.json +3 -3
  42. package/dist/{test-git-3WDLNQCA.js → test-git-J7I5MFYH.js} +3 -3
  43. package/dist/{test-prefix-EVGAWAJW.js → test-prefix-ZCONBCBX.js} +3 -3
  44. package/package.json +2 -2
  45. package/dist/ClaudeContextManager-MUQSDY2E.js +0 -13
  46. package/dist/ClaudeService-HG4VQ7AW.js +0 -12
  47. package/dist/chunk-3KATJIKO.js.map +0 -1
  48. package/dist/chunk-47KSHUCR.js.map +0 -1
  49. package/dist/chunk-5EF7Z346.js.map +0 -1
  50. package/dist/chunk-ML3NRPNB.js.map +0 -1
  51. /package/dist/{BranchNamingService-3OQPRSWT.js.map → BranchNamingService-OMWKUYMM.js.map} +0 -0
  52. /package/dist/{ClaudeContextManager-MUQSDY2E.js.map → ClaudeContextManager-3VXA6UPR.js.map} +0 -0
  53. /package/dist/{ClaudeService-HG4VQ7AW.js.map → ClaudeService-6CPK43N4.js.map} +0 -0
  54. /package/dist/{LoomLauncher-FLEMBCSQ.js.map → LoomLauncher-JF7JZMTZ.js.map} +0 -0
  55. /package/dist/{SettingsManager-WHHFGSL7.js.map → SettingsManager-ZCWJ56WP.js.map} +0 -0
  56. /package/dist/{chunk-MAVL6PJF.js.map → chunk-4BGK7T6X.js.map} +0 -0
  57. /package/dist/{chunk-VAYCCUXW.js.map → chunk-4E4LD3QR.js.map} +0 -0
  58. /package/dist/{chunk-AWOFAD5O.js.map → chunk-IXKLYTWO.js.map} +0 -0
  59. /package/dist/{chunk-FIAT22G7.js.map → chunk-U5QDY7ZD.js.map} +0 -0
  60. /package/dist/{chunk-C5QCTEQK.js.map → chunk-XPKDPZ5D.js.map} +0 -0
  61. /package/dist/{claude-GOP6PFC7.js.map → claude-LUZ35IMK.js.map} +0 -0
  62. /package/dist/{contribute-BS2L4FZR.js.map → contribute-UWJAGIG7.js.map} +0 -0
  63. /package/dist/{feedback-N4ECWIPF.js.map → feedback-W3BXTGIM.js.map} +0 -0
  64. /package/dist/{git-TDXKRTXM.js.map → git-34Z6QVDS.js.map} +0 -0
  65. /package/dist/{ignite-VM64QO3J.js.map → ignite-KVJEFXNO.js.map} +0 -0
  66. /package/dist/{init-G3T64SC4.js.map → init-L55Q73H4.js.map} +0 -0
  67. /package/dist/{open-KXDXEKRZ.js.map → open-LNRZL3UU.js.map} +0 -0
  68. /package/dist/{rebase-Q7GMM7EI.js.map → rebase-C4WNCVGM.js.map} +0 -0
  69. /package/dist/{run-PAWJJCSX.js.map → run-IOGNIOYN.js.map} +0 -0
  70. /package/dist/{test-git-3WDLNQCA.js.map → test-git-J7I5MFYH.js.map} +0 -0
  71. /package/dist/{test-prefix-EVGAWAJW.js.map → test-prefix-ZCONBCBX.js.map} +0 -0
package/dist/README.md CHANGED
@@ -1,5 +1,5 @@
1
- # iloom
2
-
1
+ iloom
2
+ =====
3
3
  <div align="center">
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/%40iloom%2Fcli?label=npm)](https://www.npmjs.com/package/@iloom/cli)
@@ -15,8 +15,8 @@
15
15
  </div>
16
16
 
17
17
  #### Links to key sections
18
- [How It Works](#how-it-works) • [Installation](#installation) • [Commands](#commands) • [Nested Looms](#child-looms-nested-looms) • [Limitations](#platform--integration-support) • [Configuration](#configuration) • [Feedback](#providing-feedback)
19
18
 
19
+ [How It Works](#how-it-works-the-multi-agent-workflow) • [Installation](#quick-start) • [Configuration](#configuration) • [Advanced Features](#advanced-features) • [Limitations](#system-requirements--limitations)
20
20
 
21
21
  ## Built For Modern Tools...
22
22
 
@@ -26,990 +26,313 @@
26
26
  [![Neon](https://img.shields.io/badge/Neon-00E699?style=for-the-badge)](https://neon.tech/)
27
27
  [![Claude Code](https://img.shields.io/badge/Claude%20Code-8A6FFF?style=for-the-badge)](https://claude.ai/)
28
28
 
29
- *These companies and projects do not endorse iloom.*
30
-
31
- ## ...To Solve A Very Modern Problem
32
-
33
- 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.
34
-
35
- **AI agents write code quickly. They struggle to stay in sync with their humans.**
36
-
37
- 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.
38
-
39
- Friction piles up:
40
- - You open new chats for each problem and rebuild context in your head.
41
- - Mental overhead grows. Stress rises. Momentum drops.
42
- - Hidden assumptions creep in. The AI picks Axios when your team standardizes on fetch. It reaches for the wrong auth pattern.
43
- - Hit a context limit and the model forgets what matters.
44
-
45
- 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.
46
-
47
- **The bottleneck isn't output velocity. It's maintaining shared understanding between human and AI at scale.**
48
-
49
- *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.*
50
-
51
- ## How iloom Solves This
52
-
53
- 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.
54
-
55
- ```bash
56
- > npm install -g @iloom/cli
57
-
58
- # iloom doesn't need your GitHub access token - it uses the GitHub CLI instead.
59
- > gh auth login
60
-
61
- # Spins up an isolated dev environment.
62
- # Pulls in issue 25 from GitHub, even if it's just an issue title.
63
- # Fills in the blanks with you.
64
- > iloom start 25
65
-
66
- # or
67
-
68
- # Creates an issue, builds that same shared mental model from scratch.
69
- > iloom start "user auth broken"
70
-
71
- # or
72
-
73
- # Grabs context from this PR and its original issue, then iterates on it alongside you
74
- > iloom start 34
75
-
76
- # then
77
-
78
- # Knows which loom you're in, validates, merges your code back to your primary branch.
79
- # If you hit compilation/lint/test failures or merge conflicts along the way,
80
- # Claude will help resolve them automatically.
81
- > iloom finish
82
- ```
83
-
84
- **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.
85
-
86
- ### One Command, Parallel Work, Predictable Flow
87
-
88
- Each loom follows the same workflow - structured, visible, repeatable.
89
-
90
- `iloom start` doesn't just create a git worktree. It spins up a loom. Here's what happens:
91
-
92
- - Fetches the full GitHub issue (or PR) including all comments and requirements - or not, if they don't exist.
93
- - Creates an isolated environment (Git worktree, database branch, web server on a deterministic unique port)
94
- - Enhances the GitHub issue with a better description, and structured analysis & planning. Asking questions and stating assumptions along the way, all in GitHub comments.
95
- - 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.
96
- - Each loom is color-coded, from terminal windows to VS Code, so you visually know which context you're in.
97
-
98
- **When you switch to this loom, both you and Claude know exactly what you're working on and why.**
99
-
100
- ### Merge with Confidence
101
-
102
- ```bash
103
- > iloom finish
104
- # ✅ Runs tests, types, lint - Claude helps fix any failures automatically
105
- # ✅ Generates commit message from the issue context
106
- # ✅ Handles merge conflicts with AI assistance
107
- # ✅ Merges to main, installs dependencies
108
- # ✅ Cleans up everything - worktree, database branch, and the web server you were using to test your work
109
- ```
110
- (as you can see, using iloom does not spare you from copious emoji)
111
-
112
- 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.
113
-
114
- ## What This Means for How You Work
115
-
116
- ### You Stop Babysitting Your AI, Start Collaborating With It
117
-
118
- Traditional approach:
119
- 1. Start a feature, brief Claude on context.
120
- 2. Review code, fix misunderstandings. Argue with Claude.
121
- 3. Get pulled into a bug - stash or WIP commit, switch branches, start a new Claude chat.
122
- 4. Lose context on both tasks, repeat the same explanations.
123
-
124
- iloom approach:
125
- 1. `il start 45` - begin the feature. Note: `il` is an alias for `iloom`.
126
- 2. Review iloom's structured analysis in GitHub, clarify assumptions.
127
- 3. `il start 99` - urgent bug; Claude already knows the issue context from the GitHub issue.
128
- 4. Switch between looms freely - color coding and context persistence keep everything clear.
129
- 5. `il finish` - work validated, merged, cleaned up.
130
- 6. Return to your feature loom - context, reasoning, and AI alignment all intact.
131
-
132
- **The difference**: Your AI becomes a persistent collaborator rather than a tool you're constantly playing catch-up with.
133
-
134
- **Plus, your AI's reasoning is now visible to everyone, including future you:**
135
- 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.
136
-
137
- ### You Scale Understanding, Not Just Output
138
-
139
- 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.
140
-
141
- 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.
142
-
143
- **This is how you achieve sustainable velocity with AI assistance.**
144
-
145
- ### You Reduce Rework and Chaos
146
-
147
- When you and your AI are in lockstep:
148
- - 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.
149
- - Reviews focus on the quality of the AI's thinking, not just its code.
150
- - Fewer surprises caused by AI agents inventing requirements or inconsistently implementing existing patterns
151
- - 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.
152
-
153
- ### The Power of Predictable Flow
154
-
155
- Every loom follows the same rhythm - Start → Enhance → Analyze → Plan → Implement → Human review → Finish.
156
- The steps never change. The tools stay aligned.
157
- Predictability becomes muscle memory - you focus on ideas, not process.
158
-
159
- ## How It Works
160
-
161
- 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.
162
-
163
- ### Creating Context
164
-
165
- ```bash
166
- > il start 25
167
- ```
168
-
169
- iloom executes a multi-phase context-establishment workflow:
170
-
171
- 1. **Fetch complete requirements** - GitHub issue body + all comments
172
- 2. **Create isolated loom** - Git worktree at `~/project-looms/issue-25-auth-bugs/` (branch names are generated)
173
- 3. **Run AI workflow agents** - Enhance, analyze, plan, and document directly in GitHub comments:
174
- - **Enhancement Agent**: Expands brief issues into detailed requirements (if needed)
175
- - **Complexity Evaluator**: Assesses scope and determines workflow approach
176
- - **Simple workflow**: Combined analysis and planning in one step
177
- - **Complex workflow**: Separate analysis phase, then detailed planning phase
178
- 4. **Establish environment** - Unique web server port (e.g., 3025), isolated database branch, `.env` file with correct DATABASE_URL environment variable
179
- 5. **Launch tools** - VS Code with color theme, dev server, Claude with preloaded context from GitHub comments
180
-
181
- **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:
182
- - Enhancement analysis (if the issue was brief)
183
- - Complexity evaluation with metrics
184
- - Root cause analysis and technical findings
185
- - Implementation plan
186
- - All context is editable, reviewable, and persists across machines
187
-
188
- ### Maintaining Context
189
-
190
- Each loom is isolated:
191
-
192
- - **Git worktree** - Separate filesystem, different branch checked out, no switching overhead
193
- - **Database branch** - Schema changes don't affect other contexts (optional, requires Neon - other provider support coming soon)
194
- - **Unique port** - Multiple dev servers run simultaneously (base port + issue number)
195
- - **Environment variables** - Each loom has correct database URL
196
- - **Visual identity** - Color-coded VS Code window (40 distinct pastel colors)
197
- - **GitHub issue comments** - Multi-phase context (enhancement, analysis, planning) persists and is editable by team members
198
-
199
- **When you switch looms, the context switches with you.**
200
-
201
- ### Context That Scales With Your Team
202
-
203
- Traditional AI workflows store context locally in chat history or Markdown files. iloom stores context where it belongs - in the GitHub issue itself.
204
-
205
- **Benefits:**
206
-
207
- - **Transparency**: All AI analysis and planning is visible to your entire team
208
- - **Collaboration**: Team members can review, comment on, and refine AI-generated context
209
- - **Persistence**: Context survives repository clones, machine switches, and team member changes
210
- - **Version Control**: GitHub tracks all context changes with timestamps and authors
211
- - **Searchability**: GitHub's search finds AI insights across all your issues
212
- - **Integration**: Context appears in notifications, project boards, and automation workflows
213
- - **No Sync Issues**: Everyone sees the same context - no local file drift
214
-
215
- 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.
216
-
217
- **This is context as infrastructure, not files.**
29
+ ...To Solve A Very Modern Problem
30
+ ---------------------------------
218
31
 
219
- ### Understanding the Multi-Agent Workflow
32
+ The promise of AI-assisted development is profound: write more code, ship features faster. But there is a hidden cost. **AI agents write code quickly, but they struggle to stay in sync with their humans.**
220
33
 
221
- When you run `il start 25`, iloom orchestrates specialized AI agents that work through a structured analysis and planning process:
34
+ The hard part isn't generating code, it's maintaining the shared mental model of _why_ that code exists. When you rely on ephemeral chat windows, friction piles up:
222
35
 
223
- **Phase 1: Enhancement (optional)** - `iloom-issue-enhancer`
224
- - Checks if issue needs more detail (word count, structure, clarity)
225
- - Expands brief descriptions into comprehensive requirements
226
- - Posts enhancement as a GitHub comment
227
- - **Used for:** All issues that need enhancement
36
+ * You constantly re-brief the AI on the same context.
37
+
38
+ * Hidden assumptions creep in (e.g., "Why did it use Axios instead of fetch?").
39
+
40
+ * You spend more time reviewing and "babysitting" the AI than building.
41
+
228
42
 
229
- **Phase 2: Complexity Evaluation** - `iloom-issue-complexity-evaluator`
230
- - Analyzes scope, file changes, breaking changes, risks
231
- - Classifies as Simple or Complex
232
- - Posts evaluation as a GitHub comment with metrics
233
- - **Used for:** All issues
43
+ **The bottleneck isn't output velocity. It's maintaining alignment between human and AI at scale.**
234
44
 
235
- #### For complex issues
45
+ ### The iloom Approach: Context as Infrastructure
236
46
 
237
- **Phase 3: Dedicated Analysis** - `iloom-issue-analyzer`
238
- - Investigates root causes and technical constraints
239
- - Documents findings and implementation considerations
240
- - Posts analysis as a GitHub comment
241
- - **Used for:** Complex issues only
47
+ iloom stops the "Context Window Tetris." It treats context as a first-class concern, persisting your AI's reasoning in **issue comments** rather than temporary chats.
242
48
 
243
- **Phase 4: Dedicated Planning** - `iloom-issue-planner`
244
- - Creates detailed implementation roadmap
245
- - Breaks work into phases with validation points
246
- - Posts plan as a GitHub comment
247
- - **Used for:** Complex issues only
49
+ * **Stop Babysitting, Start Collaborating:** Instead of arguing with Claude in a chat, you review structured analysis plans in your issue tracker _before_ a single line of code is written.
50
+
51
+ * **Scale Understanding:** Because every loom holds its own isolated environment (Git worktree, DB branch, local server), you can switch between 5 complex features without losing your place or your AI's context.
52
+
53
+ * **Visible Reasoning:** The AI's decisions are documented publicly. Your team sees the plan, and "future you" knows exactly why a decision was made.
54
+
248
55
 
249
- #### For simple issues
56
+ _iloom is not just a tool for managing git worktrees - it's a control plane for maintaining alignment between you and your AI assistant._
250
57
 
251
- **Phase 3+4: Combined Analysis & Planning** - `iloom-issue-analyze-and-plan`
252
- - Combines analysis and planning in a single step to shorten time and reduce review checkpoints
253
- - Posts combined analysis and plan as a GitHub comment
254
- - **Used for:** Simple issues only
255
-
256
- #### For all issues
257
-
258
- **Phase 5: Implementation** - `iloom-issue-implementer`
259
- - Executes the implementation plan created in previous phases
260
- - Updates progress in a GitHub comment
261
- - Documents decisions and completion status
262
- - **Used for:** All issues
263
-
264
- **Phase 6: Review (optional)** - `iloom-issue-reviewer`
265
- - Reviews completed implementation against issue requirements
266
- - Posts review findings as a GitHub comment
267
- - **Used for:** All issues (when review is requested)
268
-
269
- 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.
270
-
271
- ### A Note on Token Usage and Model Selection
272
-
273
- 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.
274
-
275
- You can [configure](#configuration) the models used by the agents:
276
-
277
- - **Default**: All agents run on the latest Sonnet model to balance capability and cost
278
- - **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
279
- - **Maximum Power**: Override to Opus for complex architectural work (more expensive)
280
-
281
- **Available agents** (all configurable):
282
- - `iloom-issue-enhancer` - Structures issue descriptions from user perspective
283
- - `iloom-issue-complexity-evaluator` - Assesses scope and determines workflow approach
284
- - `iloom-issue-analyzer` - Investigates root causes (complex issues only)
285
- - `iloom-issue-planner` - Creates implementation roadmap (complex issues only)
286
- - `iloom-issue-analyze-and-plan` - Combined analysis and planning (simple issues only)
287
- - `iloom-issue-implementer` - Executes implementation plans (good candidate for Haiku)
288
- - `iloom-issue-reviewer` - Reviews completed implementations
289
-
290
- **Hard-coded model usage** (not configurable):
291
- - **Branch naming** - Uses the latest Haiku model to generate descriptive branch names from issue titles
292
- - **Commit message generation** - Uses the latest Haiku model to create commit messages
293
-
294
- Both operations use Haiku for fast, cost-effective AI assistance.
295
-
296
- **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.
297
-
298
- **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.
299
-
300
- ## Commands
301
-
302
- ### Loom Management
303
-
304
- ```bash
305
- iloom start <issue-number | pr-number | issue-description | branch-name>
306
- # Create loom with complete context
307
- # Orchestrates AI agents that analyze the issue and post structured comments
308
- # Phases: Enhancement → Analysis → Planning → Implementation with review checkpoints at every step
309
- # Aliases: create, up
310
- # Options:
311
- # --one-shot <mode> - Automation level for Claude CLI
312
- # default: Standard behavior with prompts
313
- # noReview: Skip phase approval prompts
314
- # bypassPermissions: Full automation, skip all permission prompts. Be careful!
315
- # --child-loom - Force create as child loom (skip prompt, requires parent loom)
316
- # --no-child-loom - Force create as independent loom (skip prompt)
317
-
318
- iloom finish
319
- # AI assisted validation, commit, merge steps, as well as loom cleanup (run this from the loom directory)
320
- # Behavior depends on mergeBehavior.mode setting:
321
- # local (default): Merge locally and cleanup
322
- # github-pr: Push branch, create PR, prompt for cleanup
323
- # Alias: dn
324
- # Options:
325
- # -f, --force - Skip confirmation prompts
326
- # -n, --dry-run - Preview actions without executing
327
- # --skip-build - Skip post-merge build verification
328
- # --no-browser - Skip opening PR in browser (github-pr mode only)
329
- # --cleanup - Clean up worktree after PR creation (github-pr mode only)
330
- # --no-cleanup - Keep worktree after PR creation (github-pr mode only)
331
-
332
- iloom rebase
333
- # Rebase current branch on main with Claude-assisted conflict resolution (run this from a loom directory)
334
- # Options:
335
- # -f, --force - Skip confirmation prompts
336
- # -n, --dry-run - Preview actions without executing
337
-
338
- iloom cleanup [identifier...]
339
- # Remove a loom without merging (safely, by default)
340
-
341
- iloom list
342
- # Show active looms with their ports and paths
343
-
344
- iloom spin
345
- # Launch Claude with auto-detected loom context
346
- # Options:
347
- # --one-shot=<mode> - Same automation modes as 'start'
348
-
349
- iloom open [identifier]
350
- # Open loom in browser (web projects) or run configured CLI tool
351
- ```
352
-
353
- ### Issue Management
354
-
355
- ```bash
356
- iloom add-issue <description>
357
- # Create and AI-enhance GitHub issue (doesn't spin up a loom)
358
- # Alias: a
359
- # Example: il add-issue "Add dark mode toggle to settings"
360
-
361
- iloom enhance <issue-number>
362
- # Apply AI enhancement agent to existing GitHub issue
363
- # Expands requirements, asks clarifying questions and adds implementation context
364
- ```
365
-
366
- ## Child Looms (Nested Looms)
367
-
368
- Child looms let you create isolated workspaces from within an existing loom. This is useful when you need to work on a subtask, bug fix, or experiment while keeping your parent work intact.
369
-
370
- ### When to Use Child Looms
371
-
372
- - **Break down complex issues**: Large features can spawn smaller issues that become child looms
373
- - **Fix bugs discovered during work**: Create a child loom to fix a bug without mixing commits
374
- - **Experiment safely**: Try different approaches in child looms without affecting parent work
375
- - **Handle interrupts**: Start urgent work from your current context without losing it
376
-
377
- ### How Child Looms Work
378
-
379
- When you run `il start` from inside an existing loom, iloom detects the parent context and prompts you:
380
-
381
- ```bash
382
- # Inside a loom working on issue #25
383
- > il start 42
384
- ? Create as child loom of issue #25? (Y/n)
385
- ```
386
-
387
- **Automatic inheritance:**
388
- - **Database branch**: Child looms branch from the parent's database state, not the main branch
389
- - **Base branch**: Git branch is created from the parent's branch
390
- - **Main branch config**: Child's `mainBranch` setting points to parent branch (for `il finish`)
391
-
392
- ### CLI Flags
393
-
394
- Skip the prompt with explicit flags:
58
+ Quick Start
59
+ -----------
395
60
 
61
+ iloom uses your existing Claude subscription to build a shared mental model of your task.
396
62
  ```bash
397
- # Force child loom creation (no prompt)
398
- il start 42 --child-loom
399
-
400
- # Force independent loom (no prompt)
401
- il start 42 --no-child-loom
402
- ```
403
-
404
- The `--child-loom` flag is ignored when not running from inside a loom.
405
-
406
- ### Directory Structure
407
-
408
- Child looms are created in a dedicated subdirectory based on the parent branch name:
409
-
410
- ```
411
- ~/project-looms/
412
- ├── feat-issue-25-auth-refactor/ # Parent loom
413
- ├── feat-issue-25-auth-refactor-looms/ # Child looms directory
414
- │ ├── fix-issue-42-token-validation/ # Child loom 1
415
- │ └── feat-issue-43-oauth-support/ # Child loom 2
416
- ```
417
-
418
- ### Finishing Child Looms
419
-
420
- When finishing a parent loom, iloom warns about existing child looms:
421
-
422
- ```bash
423
- > il finish
424
- ⚠ Found 2 child loom(s) that should be cleaned up first:
425
- - ~/project-looms/feat-issue-25-auth-refactor-looms/fix-issue-42-token-validation
426
- - ~/project-looms/feat-issue-25-auth-refactor-looms/feat-issue-43-oauth-support
427
-
428
- To clean up child looms:
429
- il cleanup 42
430
- il cleanup 43
431
- ```
432
-
433
- Child looms should typically be finished or cleaned up before finishing the parent.
434
-
435
- ### Example Workflow
63
+ # 1. Install iloom
64
+ npm install -g @iloom/cli
65
+
66
+ # 2. Authenticate (iloom uses the GitHub CLI)
67
+ gh auth login
68
+
69
+ # 3. Start a Loom
70
+ # Spins up an isolated environment (Git worktree, DB branch, unique port).
71
+ # Analyzes the issue, plans the work, and documents the plan in issue comments.
72
+ il start 25
73
+
74
+ # ... You, the iloom agents and Claude build the feature together in the isolated environment ...
75
+
76
+ # 4. Finish & Merge # Validates code (test/lint), handles merge conflicts, and cleans up the worktree/DB.
77
+ il finish
78
+ ```
79
+
80
+ **The iloom Difference:** il start doesn't just create a branch. It launches a multi-agent workflow that surfaces assumptions and creates a structured plan in your issue tracker **before you even need to look at your IDE.**
81
+
82
+ **→ [Want to know how you'll benefit from iloom?](docs/is-iloom-right-for-you.md)**
83
+
84
+ How It Works: The Multi-Agent Workflow
85
+ --------------------------------------
86
+
87
+ When you run il start, iloom orchestrates specialized AI agents. Each has a specific role and writes structured output to **issue comments**, creating permanent project knowledge.
88
+
89
+ ### 1. The Agents
90
+
91
+ Instead of a single generic prompt, iloom uses a pipeline of agents:
92
+
93
+ * **Enhancer (iloom-issue-enhancer):** Expands brief one-liners into detailed requirements.
94
+
95
+ * **Evaluator (iloom-issue-complexity-evaluator):** Determines the workflow approach:
96
+
97
+ * **Simple:** Combines analysis and planning into one step for efficiency.
98
+
99
+ * **Complex:** Separates deep root-cause analysis from detailed implementation planning.
100
+
101
+ * **Implementer:** Executes the plan using the context established in the previous steps.
102
+
103
+
104
+ ### 2\ Interactive Control
105
+
106
+ You are in the loop at every stage. You can review the AI's analysis, edit the plan in GitHub/Linear, and adjust course before implementation begins.
107
+
108
+ * **Default Mode:** You approve each phase (Enhance → Plan → Implement).
109
+
110
+ * **--one-shot Mode:** Feeling lucky? Automate the entire pipeline from start to finish without prompts.
111
+
112
+
113
+ ### 3. The Environment
114
+
115
+ Each loom is a fully isolated container for your work:
116
+
117
+ * **Git Worktree:** A separate filesystem at ~/project-looms/issue-25/. No stashing, no branch switching overhead.
118
+
119
+ * **Database Branch:** (Neon support) Schema changes in this loom are isolated—they won't break your main environment or your other active looms.
120
+
121
+ * **Unique Runtime:**
122
+
123
+ * **Web Apps:** Runs on a deterministic port (e.g., base port 3000 + issue #25 = 3025).
124
+
125
+ * **CLI Tools:** Creates an isolated binary copy (e.g., my-tool-25). You can run issue #25's version of your CLI alongside issue #99's version without conflicts. (Fun fact: iloom was built with iloom using this feature).
126
+
127
+ * **Context Persistence:** All reasoning is stored in issue comments. This makes the "why" behind the code visible to your teammates and your future self.
128
+
129
+
130
+ Command Reference
131
+ -----------------
132
+
133
+ | **Command** | **Alias** | **Description** |
134
+ | ------ | ----- | -----|
135
+ | `il start` | `up` | Create loom, run analysis agents, and launch IDE. |
136
+ | `il finish` | `dn` | Validate tests/lint, commit, handle conflicts, and merge/PR. |
137
+ | `il cleanup` | | Safely remove a loom and its database branch without merging. |
138
+ | `il list` | | Show active looms and paths. |
139
+ | `il spin` | | Launch Claude inside the current loom with context auto-detected. |
140
+ | `il open` | `run` | Open loom in browser (web) or run your CLI tool. |
141
+ | `il add-issue` | `a` | Create and AI-enhance a new issue without starting work yet. |
142
+ | `il init` | `config` | Interactive configuration wizard. |
143
+ | `il feedback` | `f` | Submit bug reports/feedback directly from the CLI. |
144
+ | `il update` | | Update iloom CLI to the latest version. |
145
+
146
+ For detailed documentation including all command options, flags, and examples, see the [Complete Command Reference](docs/iloom-commands.md).
147
+
148
+ Configuration
149
+ -------------
150
+
151
+ ### 1. Interactive Setup (Recommended)
152
+
153
+ The easiest way to configure iloom is the interactive wizard. It guides you through setting up your environment (GitHub/Linear, Neon, IDE).
154
+
155
+ You can even use natural language to jump-start the process:
436
156
 
437
157
  ```bash
438
- # Start working on a feature
439
- > il start 25
440
- # ... working on authentication refactor
158
+ # Standard wizard
159
+ il init
441
160
 
442
- # Discover a bug that needs immediate attention
443
- > il start 42
444
- ? Create as child loom of issue #25? Y
445
- # Creates child loom with parent's database state
161
+ # Natural language wizard
162
+ il init "set my IDE to windsurf and help me configure linear"
163
+ ```
446
164
 
447
- # Fix the bug in isolation
448
- > cd ~/project-looms/feat-issue-25-auth-refactor-looms/fix-issue-42-...
165
+ ### 2. Manual Configuration
449
166
 
450
- # Finish the child work (merges to parent branch, not main)
451
- > il finish
167
+ Settings are loaded in this order (highest priority first):
452
168
 
453
- # Return to parent loom
454
- > cd ~/project-looms/feat-issue-25-auth-refactor
169
+ 1. **CLI Flags:** il start --permissionMode=acceptEdits
170
+
171
+ 2. **Local Overrides:** .iloom/settings.local.json (gitignored; for API keys & local preferences)
172
+
173
+ 3. **Project Settings:** .iloom/settings.json (committed; for shared team defaults)
174
+
175
+ 4. **Global Settings:** ~/.config/iloom-ai/settings.json (for user-specific defaults)
176
+
455
177
 
456
- # Continue feature work, then finish
457
- > il finish
458
- ```
178
+ ### Key Settings Example
459
179
 
460
- ## Providing Feedback
180
+ This example shows how to configure a project-wide default (e.g., GitHub remote) while keeping sensitive keys (Linear API token) or personal preferences (IDE choice) local.
461
181
 
462
- Found a bug, have a feature request, or want to contribute ideas to improve iloom CLI? Submit feedback directly from your terminal.
182
+ **.iloom/settings.json (Committed)**
463
183
 
464
- ```bash
465
- iloom feedback <description>
466
- # Submit feedback/bug report to iloom-cli repository
467
- # Alias: f
468
- # Example: il feedback "Add support for Linear issue tracking"
469
- # Example: il feedback "The worktree cleanup seems to leave temp files behind"
470
- ```
471
-
472
- **What happens when you run `iloom feedback`:**
473
-
474
- 1. **Issue Creation**: Creates a new issue in the [iloom-cli repository](https://github.com/iloom-ai/iloom-cli)
475
- 2. **Browser Opening**: Opens the created issue in your browser for you to review and add additional context
476
- 3. **AI Enhancement**: Within a couple of minutes, your feedback gets enhanced by iloom to provide clear context and actionable details
477
-
478
- **Open the browser to provide additional context. Please:**
479
- - Be specific about what you expected vs. what happened
480
- - Include your environment details if reporting a bug (OS, Node version, etc.)
481
- - Mention the command or workflow that had issues
482
- - Suggest improvements or alternative approaches if you have ideas
483
-
484
- Your feedback helps make iloom better for everyone! Issues created through `iloom feedback` are prioritized and reviewed regularly.
485
-
486
- ### Maintenance
487
-
488
- ```bash
489
- iloom update
490
- # Update iloom-cli to the latest version
491
- ```
492
-
493
- ## Configuration
494
-
495
- ### Interactive Configuration Wizard
496
-
497
- The recommended way to configure iloom:
498
-
499
- ```bash
500
- iloom init
501
- # or
502
- iloom config
503
- ```
504
-
505
- This Claude-powered assistant will guide you through all configuration options and automatically:
506
- - Create and configure `.iloom/settings.json` and `.iloom/settings.local.json`
507
- - Set up `.gitignore` entries
508
- - Help you choose the right GitHub remote (if you have multiple)
509
- - Configure database providers (Neon, etc.)
510
- - Set workflow permissions and preferences
511
- - Explain each option as you go
512
-
513
- For most users, this is all you need. The wizard creates the files and explains everything as you configure it.
514
-
515
- ### Manual Configuration Files
516
-
517
- If you prefer manual configuration, iloom uses these files (highest to lowest priority):
518
-
519
- 1. **CLI arguments** - Command-line flags (e.g., `--one-shot bypassPermissions`)
520
- 2. **`.iloom/settings.local.json`** - Local machine settings (gitignored, not committed)
521
- 3. **`.iloom/settings.json`** - Project-wide settings (committed to repository)
522
- 4. **`~/.config/iloom-ai/settings.json`** - Global user settings (applies to all projects)
523
- 5. **Built-in defaults** - Hardcoded fallback values
524
-
525
- This allows teams to share project defaults via `settings.json` while individual developers maintain personal overrides in `settings.local.json` or global preferences in `~/.config/iloom-ai/settings.json`.
526
-
527
- **Example Use Cases:**
528
- - **Global settings**: Default agent models or workflow permission modes that apply to all your projects
529
- - **Project settings**: Team defaults like `mainBranch`, database configuration, GitHub remote
530
- - **Local settings**: Machine-specific overrides like different `basePort` due to port conflicts, local database URLs, personal workflow preferences
531
-
532
- **Global Settings:**
533
- Global settings are stored in `~/.config/iloom-ai/settings.json` and apply to all iloom projects on your machine. Use these for personal preferences like default agent models or workflow permission modes. Project-specific settings (like database configuration) should remain in project config files.
534
-
535
- **Note:** The `.iloom/settings.local.json` file is automatically created and gitignored when you run `il init`.
536
-
537
- ### Key Configuration:
538
-
539
- ```jsonc
184
+ ```json
540
185
  {
541
186
  "mainBranch": "main",
542
- "sourceEnvOnStart": false, // Source .env in terminal launches (default: false)
543
- "mergeBehavior": {
544
- "mode": "local", // or "github-pr" for PR-based workflows
545
- "remote": "upstream" // optional, defaults to issueManagement.github.remote
187
+ "issueManagement": {
188
+ "provider": "github"
546
189
  },
547
190
  "capabilities": {
548
- "web": { "basePort": 3000 },
549
- "database": { "databaseUrlEnvVarName": "DATABASE_URL" }
191
+ "web": {
192
+ "basePort": 3000
193
+ },
194
+ "database": {
195
+ "databaseUrlEnvVarName": "DATABASE_URL"
196
+ }
550
197
  },
551
198
  "databaseProviders": {
552
199
  "neon": {
553
- "projectId": "fantastic-fox-3566354",
554
- "parentBranch": "main"
555
- }
556
- },
557
- "workflows": {
558
- "issue": {
559
- "permissionMode": "default",
560
- "startIde": true,
561
- "startDevServer": true,
562
- "startAiAgent": true,
563
- "startTerminal": false
200
+ "projectId": "fantastic-fox-3566354"
564
201
  }
565
- },
566
- "agents": {
567
- "iloom-issue-enhancer": {"model":"opus"},
568
- "iloom-issue-analyzer": {"model":"opus"},
569
- "iloom-issue-analyze-and-plan": {"model":"opus"},
570
- "iloom-issue-implementer": {"model":"haiku"}
571
- }
572
- }
573
- ```
574
-
575
- **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:
576
- - **Opus for analysis/enhancement** - Maximum reasoning capability for understanding requirements and planning
577
- - **Haiku for implementation** - Cost-effective execution of detailed plans (recommended for token-conscious users)
578
-
579
- ** Common configuration options:**
580
- - `mainBranch` - Primary branch for merging (default: "main")
581
- - `sourceEnvOnStart` - Source .env file when launching terminal processes (default: false)
582
- - `mergeBehavior.mode` - How to finish work: "local" (merge locally) or "github-pr" (create PR) (default: "local")
583
- - `mergeBehavior.remote` - Remote to target for PRs (optional, defaults to `issueManagement.github.remote`)
584
- - `capabilities.web.basePort` - Base port for dev servers (default: 3000)
585
- - `capabilities.database.databaseUrlEnvVarName` - Name of environment variable for database connection URL (default: "DATABASE_URL")
586
- - `databaseProviders.neon.projectId` - Neon project ID (found in project URL, e.g., "fantastic-fox-3566354")
587
- - `databaseProviders.neon.parentBranch` - Branch from which new database branches are created (default: "main")
588
- - `workflows` - Per-workflow Claude CLI permission modes and tool launching
589
- - `agents` - Claude model selection (sonnet/opus/haiku) per agent type
590
-
591
- All options can be specified in either `settings.json` (project-wide) or `settings.local.json` (local overrides, gitignored).
592
-
593
- Port calculation: `assignedPort = basePort + issueNumber`
594
- Example: Issue #25 with basePort 3000 = port 3025
595
-
596
- For complete configuration reference, see [.iloom/README.md](./.iloom/README.md)
597
-
598
- ### IDE Configuration
599
-
600
- Configure which IDE launches when starting a loom:
601
-
602
- ```jsonc
603
- {
604
- "ide": {
605
- "type": "cursor" // or: vscode, webstorm, sublime, intellij, windsurf
606
202
  }
607
203
  }
608
204
  ```
609
205
 
610
- **Supported IDEs:**
611
-
612
- | Type | Command | Notes |
613
- |------|---------|-------|
614
- | `vscode` | `code` | Default. Visual Studio Code |
615
- | `cursor` | `cursor` | Cursor AI editor |
616
- | `webstorm` | `webstorm` | JetBrains WebStorm (launches with --nosplash) |
617
- | `sublime` | `subl` | Sublime Text |
618
- | `intellij` | `idea` | JetBrains IntelliJ IDEA (launches with --nosplash) |
619
- | `windsurf` | `windsurf` | Windsurf editor |
620
-
621
- **Configure via CLI:** Use the existing `--set` flag:
622
-
623
- ```bash
624
- il start 25 --set ide.type=cursor
625
- ```
626
-
627
- **Configure during setup:** Run `il init` to configure IDE preference interactively along with other settings.
628
-
629
- **Note:** Color synchronization (title bar colors) only works with VSCode-compatible editors (vscode, cursor, windsurf). Other IDEs will launch without color theming.
630
-
631
- ## Issue Tracker Integration
206
+ **.iloom/settings.local.json (Gitignored)**
632
207
 
633
- iloom supports multiple issue tracking systems through a provider abstraction. Choose GitHub or Linear based on your team's workflow.
634
-
635
- ### GitHub (Default)
636
-
637
- GitHub is the default issue tracker and requires no additional configuration beyond authentication with the `gh` CLI.
638
-
639
- **Setup:**
640
- ```bash
641
- # Authenticate with GitHub CLI
642
- gh auth login
643
-
644
- # Start using iloom with GitHub issues
645
- il start 123
646
- il start PR-456
647
- ```
648
-
649
- **Configuration:**
650
- ```jsonc
208
+ ```json
651
209
  {
652
210
  "issueManagement": {
653
- "provider": "github", // Default, can be omitted
654
- "github": {
655
- "remote": "origin" // Optional, defaults to "origin"
211
+ "linear": {
212
+ "apiToken": "lin_api_..." // Only if using Linear
213
+ }
214
+ },
215
+ "workflows": {
216
+ "issue": {
217
+ "permissionMode": "acceptEdits" // Control Claude Code permissions
656
218
  }
657
219
  }
658
220
  }
659
221
  ```
660
222
 
661
- ### Linear
223
+ Integrations
224
+ ------------
662
225
 
663
- iloom integrates with Linear through the official `@linear/sdk`, enabling full Linear issue tracking support.
226
+ ### Issue Trackers
664
227
 
665
- **Setup:**
228
+ iloom supports the tools you already use. Unless you use JIRA.
666
229
 
667
- 1. Get your Linear API token from [Linear Settings → API → Personal API Keys](https://linear.app/settings/api)
230
+ | **Provider** | **Setup** | **Notes** |
231
+ |--------------|-----------|-----------|
232
+ | **GitHub** | `gh auth login` | Default. Supports Issues and Pull Requests automatically. |
233
+ | **Linear** | `il init` | Requires API token. Supports full read/write on Linear issues. |
668
234
 
669
- 2. Configure iloom to use Linear:
670
- ```bash
671
- il init
672
- # Follow prompts to:
673
- # - Select Linear as your issue tracker
674
- # - Enter your Linear team ID (e.g., "ENG")
675
- # - Enter your Linear API token (saved securely to settings.local.json)
676
- ```
677
235
 
678
- Or manually configure:
236
+ ### IDE Support
237
+ iloom creates isolated workspace settings for your editor. Color synchronization (visual context) only works best VS Code-based editors.
679
238
 
680
- Edit `.iloom/settings.local.json` (for sensitive data):
681
- ```jsonc
682
- {
683
- "issueManagement": {
684
- "provider": "linear",
685
- "linear": {
686
- "teamId": "ENG", // Required: Your Linear team key
687
- "apiToken": "lin_api_..." // Required: Your Linear API token
688
- }
689
- }
690
- }
691
- ```
239
+ * **Supported:** VS Code, Cursor, Windsurf, WebStorm, IntelliJ, Sublime Text.
240
+
241
+ * **Config:** Set your preference via `il init` or `il start --set ide.type=cursor`.
242
+
692
243
 
693
- **Important:** The `apiToken` should be stored in `settings.local.json` (not committed to git), not in `settings.json`. The init command will automatically save it to the correct location.
244
+ Advanced Features
245
+ -----------------
694
246
 
695
- Alternatively, use an environment variable:
696
- ```bash
697
- export LINEAR_API_TOKEN="lin_api_..."
698
- ```
247
+ ### Child Looms (Nested Contexts)
699
248
 
700
- Settings take precedence over environment variables.
249
+ Sometimes a task spawns sub-tasks, or you get interrupted by an urgent bug while deep in a feature. Child looms let you create a workspace _within_ a workspace.
701
250
 
702
- **Usage:**
251
+ **When to use:**
703
252
 
704
- ```bash
705
- # Start working on a Linear issue
706
- il start ENG-123
253
+ * Breaking down a massive feature into smaller PRs.
254
+
255
+ * Fixing a bug discovered during feature work without losing context.
256
+
707
257
 
708
- # Create a new Linear issue
709
- il start "Add user authentication"
258
+ **How it works:** If you run il start 42 while inside loom-25, iloom asks if you want to create a child loom.
710
259
 
711
- # Finish and merge
712
- il finish
260
+ * **Inheritance:** The child inherits the database state and git branch from the parent (not main).
261
+
262
+ * **Structure**
713
263
  ```
714
-
715
- **Features:**
716
-
717
- - Full CRUD operations on issues and comments via the official Linear SDK
718
- - MCP integration for Claude AI assistance with Linear issues
719
- - Automatic workspace creation with Linear issue context
720
-
721
- **Limitations:**
722
-
723
- - Linear does not have pull requests. Use `il finish` with `mergeBehavior.mode: "local"` or `"github-pr"` to merge your code.
724
-
725
- **Port Calculation:**
726
-
727
- Linear issue identifiers (e.g., ENG-123) use hash-based port calculation instead of simple numeric addition. The port is deterministically generated from the branch name, ensuring consistency across sessions.
728
-
729
- ## Requirements
730
-
731
- **Essential:**
732
- - Claude CLI - AI assistance with issue context preloaded
733
- - Node.js 16+
734
- - Git 2.5+ (for worktree support)
735
-
736
- **Issue Tracker (choose one):**
737
- - **GitHub CLI (`gh`)** - For GitHub issue tracking (default)
738
- - **Linear CLI (`linearis`)** - For Linear issue tracking (install with `npm install -g linearis`)
739
-
740
- **Recommended:**
741
- - A Claude Max subscription - iloom uses your own subscription
742
-
743
- **Optional (auto-detected):**
744
- - **Neon CLI** - Isolated database branches per loom
745
- - **VS Code** - Color-coded editor windows for visual context
746
- - **iTerm2** (macOS only) - Enhanced terminal experience with dual tabs in a single window (when configured to open both Claude and start a dev server)
747
-
748
- Optional features activate automatically when detected.
749
-
750
- ## Platform & Integration Support
751
-
752
- This is an early stage product - platform/tech stack support is limited for now.
753
-
754
- **Current Platform Support:**
755
- - ✅ **macOS** - Fully tested and supported
756
- - ⚠️ **Linux/Windows** - Not yet tested, may work with modifications
757
-
758
- **Issue Tracking Integration:**
759
- - ✅ **GitHub Issues** - Full support with AI enhancement, analysis, and planning
760
- - 🚧 **Linear** - Native integration coming soon. A two way sync between Linear and your github repo works great currently.
761
-
762
- **Project Type Support:**
763
- - ✅ **Node.js web projects** - First-class support via package.json scripts (`dev`, `test`, `build`)
764
- - ✅ **Node.js CLI tools** - Full support with isolated executables (see below)
765
- - 🔧 **Other tech stacks** - Can work now via package.json scripts, native support coming later (open to help!)
766
-
767
- We (Claude and I) are actively working on expanding platform and integration support. Contributions welcome!
768
-
769
- See all [`known-limitation`](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Aknown-limitation) issues for details and to [contribute](CONTRIBUTING.md) solutions.
770
-
771
- ## Installation
772
-
773
- ```bash
774
- # Install globally
775
- > npm install -g @iloom/cli
776
-
777
- # Authenticate with GitHub
778
- > gh auth login
779
- # do `gh auth login --scopes project` to automatically move issues to in progress
780
-
781
- # Initialize in your project
782
- > cd your-project
783
- > il init
784
-
785
- # Start working
786
- > il start 25 # existing issue
787
- > il start "Enable log in/sign up with Google account" # new issue
264
+ ~/my-project-looms/
265
+ ├── feat-issue-25-auth/ # Parent Loom
266
+ └── feat-issue-25-auth-looms/ # Child Looms Directory
267
+ ├── fix-issue-42-bug/ # Child Loom (inherits from #25)
268
+ └── feat-issue-43-subtask/ # Another Child Loom
788
269
  ```
789
270
 
790
- ## Pull Request Support
271
+ ### CLI Tool Development
791
272
 
792
- iloom works identically with GitHub pull requests:
273
+ iloom provides first-class support for building CLI tools. When you start a loom for a CLI project, iloom creates workspace-specific binaries so you can test each issue's version independently.
793
274
 
794
- ```bash
795
- > il start 125 # PR number instead of issue number
796
- ```
797
-
798
- Automatically detects PR, fetches the branch, and creates loom with PR context. Everything else works the same.
799
-
800
- ## Architecture
801
-
802
- **Technologies:**
803
- - TypeScript CLI built with Commander.js
804
- - Git worktrees for loom isolation
805
- - GitHub CLI integration for issues/PRs
806
- - Integration with node-based web servers via standard package.json scripts
807
- - Database branching (Neon) - optional
808
- - Claude CLI integration for AI assistance to resolve compilation/test/lint/merge errors
809
-
810
- **Project structure:**
811
- ```
812
- src/
813
- ├── commands/ # CLI commands (start, finish, cleanup, list, add-issue, enhance, spin, init, open)
814
- ├── lib/ # Core business logic (WorkspaceManager, GitWorktreeManager, etc.)
815
- ├── utils/ # Utility functions (git, github, env, database, shell)
816
- └── types/ # TypeScript definitions
817
- ```
818
-
819
- For development guidelines and testing strategy, see [CLAUDE.md](./CLAUDE.md).
820
-
821
- ### Node.js Web Project Support
822
-
823
- iloom provides first-class support for Node.js web applications (next/express/vite, etc) through standardized package.json scripts:
824
-
825
- **Required scripts** (auto-detected):
826
- - `dev` - Start development server (launched automatically with unique port)
827
- - `test` - Run test suite (executed during `il finish` validation)
828
-
829
- **Optional scripts**:
830
- - `lint` - Code quality checks (run during `il finish` if present)
831
- - `typecheck` - TypeScript validation (run during `il finish` if present)
832
-
833
- **How it integrates:**
834
275
 
835
276
  ```bash
836
- > il start 25
837
- # ✅ Runs `pnpm install` in worktree
838
- # ✅ Launches `pnpm dev` on port 3025 (3000 + issue number)
839
- # ✅ Sets up database branch with correct DATABASE_URL
840
-
841
- > il finish
842
- # ✅ Runs `pnpm test` (fails if tests fail)
843
- # ✅ Runs `pnpm typecheck` if configured
844
- # ✅ Runs `pnpm lint` if configured
845
- # ✅ AI assists with any failures automatically
846
- ```
847
-
848
- ### Node.js CLI Tool Support
277
+ > il start 52 # Working on CLI feature in issue 52
849
278
 
850
- iloom was built using iloom itself. CLI tools get the same isolation benefits as web projects, plus **isolated executable access per loom**.
851
-
852
- **How it works:**
853
-
854
- When you create a loom for a CLI project, iloom creates workspace-specific binaries so you can test each issue's version independently:
855
-
856
- ```bash
857
- > il start 52 # Working on CLI feature in issue 52
858
- > cli-tool-52 --version # Test issue 52's version
279
+ > my-cli-52 --version # Test issue 52's version
859
280
 
860
281
  > il start 137 # Switch to different CLI issue
861
- > cli-tool-137 --help # Test issue 137's version
862
-
863
- # Original binary still works from main branch
864
- > cli-tool --version # Unaffected by iloom CLIs
865
- ```
866
-
867
- **Binary naming**: `<original-name>-<issue/pr-number>`
868
- - Binary named in package.json's "bin" object: `cli-tool`
869
- - Issue 52: `cli-tool-52`
870
- - Issue 137: `cli-tool-137`
871
- - PR 200: `cli-tool-200`
872
282
 
873
- **Cleanup**: When you run `il finish`, the workspace-specific binary is automatically removed along with the worktree and any database branches.
283
+ > my-cli-137 --help # Test issue 137's version
874
284
 
875
- This enables parallel development and testing of CLI features without conflicts or manual PATH manipulation.
876
-
877
-
878
-
879
- **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).
880
-
881
- ## Roadmap
882
-
883
- **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.
884
-
885
- ### Understanding Git Worktrees
886
-
887
- 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.
888
-
889
- Traditional approach:
890
- ```bash
891
- > git checkout feature-a # Switch branch
892
- # Edit files
893
- > git stash # Save work
894
- > git checkout feature-b # Switch branch again
895
- # Edit different files
896
- > git stash pop # Restore work
897
- > git checkout feature-a # Switch back
898
- ```
899
-
900
- Git worktree approach:
901
- ```bash
902
- # All exist simultaneously:
903
- ~/project-looms/issue-25/ # feature-a checked out
904
- ~/project-looms/issue-30/ # feature-b checked out
905
- ~/project/ # main branch
906
-
907
- # No branch switching, no stashing, less confusion
285
+ # Original binary still works from main branch
286
+ > my-cli --version # Unaffected by other looms' CLIs
908
287
  ```
909
288
 
910
- This is the foundation that enables loom isolation and persistent context. Other awesome tools use worktrees too.
911
-
912
- ### When to Choose Other Git Worktree Solutions
913
-
914
- iloom isn't the only tool that makes git worktrees more accessible. Several excellent alternatives exist, each with different trade-offs:
289
+ System Requirements & Limitations
290
+ ---------------------------------
915
291
 
916
- **Editor-Integrated Solutions:**
917
- - [VS Code Git Worktrees](https://marketplace.visualstudio.com/items?itemName=GitWorktrees.git-worktrees) - Enhanced Git worktree support in VS Code
918
- - [git-worktree.nvim](https://github.com/ThePrimeagen/git-worktree.nvim) - Neovim plugin for rapid worktree management
292
+ This is an early-stage product.
919
293
 
920
- **Apps**
921
- - [Crystal](https://github.com/stravu/crystal) - Run multiple Codex and Claude Code AI sessions in parallel git worktrees
922
- - [Conductor](https://conductor.build/) - Run a team of coding agents on your Mac
294
+ **Requirements:**
923
295
 
924
- **CLI Helpers:**
925
- - [git-worktree-wrapper](https://github.com/lu0/git-worktree-wrapper) - Manage Git worktrees with `git checkout` and `git branch` commands.
296
+ * ✅ **OS:** macOS (Fully supported). ⚠️ Linux/Windows are untested.
297
+
298
+ * ✅ **Runtime:** Node.js 16+, Git 2.5+.
299
+
300
+ * ✅ **AI:** Claude CLI installed. A Claude Max subscription is recommended (iloom uses your subscription).
301
+
926
302
 
927
- **What They Do Well:**
928
- - Reduce friction of git worktree CLI commands
929
- - Integrate tightly with your editor workflow
930
- - Minimal learning curve if you know git
931
- - Lightweight - just worktree management, nothing more
932
- - Conductor and Crystal help you with Agentic coding too
303
+ **Project Support:**
933
304
 
934
- **Where iloom Differs:**
305
+ * ✅ **Node.js Web Projects:** First-class support via package.json scripts (dev, test, build).
306
+
307
+ * ✅ **Node.js CLI Tools:** Full support with isolated binary generation.
308
+
309
+ * ⚠️ **Other Stacks:** Python/Go/Rust etc. can work via generic package.json scripts, but are not natively supported yet.
935
310
 
936
- 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**.
311
+ See all [known limitations](https://github.com/iloom-ai/iloom-cli/issues?q=is:issue+is:open+label:known-limitation) on GitHub. If you're feeling left out - you're absolutely right! The best way to complain about something is to fix it. So...
937
312
 
938
- **Beyond Worktrees:**
939
- - **Database isolation**: Neon branch integration for schema/data separation
940
- - **AI context persistence**: Structured analysis stored in GitHub comments, not local chat history
941
- - **Cognitive overhead reduction**: Color coding, port assignment, environment setup handled automatically
942
- - **Human-AI alignment**: Multi-phase workflow surfaces assumptions before code is written
943
- - **Validation automation**: AI-assisted error fixing during merge process
313
+ Contributing
314
+ ------------
944
315
 
945
- **The Trade-off:**
946
-
947
- Other tools increase code output with minimal process change. iloom increases **sustainable velocity** with a prescriptive workflow. You trade flexibility for:
948
- - Persistent shared understanding between you and your AI
949
- - Reduced time debugging AI misunderstandings
950
- - Less context switching mental overhead
951
- - Complete environment isolation (not just git)
952
-
953
- **Choose other solutions if:**
954
- - You primarily work solo without AI assistance
955
- - You want minimal workflow changes
956
- - You just need easier git worktree commands
957
- - You don't see yourself working on multiple tasks at once
958
-
959
- **Choose iloom if:**
960
- - You're scaling AI-assisted development across multiple issues
961
- - Cognitive overhead is limiting your velocity more than coding speed
962
- - You work on projects with database schemas that change per feature
963
- - You want AI analysis and planning visible to your whole team
964
-
965
- ## Contributing
966
-
967
- We welcome contributions! Whether you're fixing a bug, adding a feature, or improving documentation, there are multiple ways to get involved.
968
-
969
- ### Quick Start for Contributors
970
-
971
- The fastest way to get started contributing:
316
+ We (Claude and I) welcome contributions! We've made it easy to get started — iloom can even set up its own dev environment.
972
317
 
973
318
  ```bash
974
- iloom contribute # requires the github CLI (gh)
319
+ iloom contribute # Handles forking, cloning, and setting up the dev environment automatically.
975
320
  ```
976
321
 
977
- This automated command handles forking, cloning, and setting up your development environment.
978
-
979
- ### Finding Your First Issue
980
-
981
- New contributors should start with issues labeled [`starter-task`](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task) - these are designed to help you learn the iloom workflow and codebase while making meaningful contributions.
982
-
983
- ### Full Contributing Guide
984
-
985
- For detailed information about our development process, testing requirements, and workflow, see our comprehensive [Contributing Guide](CONTRIBUTING.md).
986
-
987
- **Key highlights:**
988
- - Behavior-focused testing principles
989
- - AI-assisted development workflow using iloom itself
990
- - Clear PR process and code quality standards
991
- - Test-Driven Development with >70% coverage requirement
992
-
993
- ## License
994
-
995
- **Business Source License 1.1** - Free to use for any purpose, including commercial use within your organization.
996
-
997
- **You can:**
998
- - ✅ Use freely in your organization and commercial projects
999
- - ✅ Modify and distribute internally
1000
- - ✅ Build paid applications with it
1001
-
1002
- **You cannot:**
1003
- - ❌ Resell iloom itself as a product or service
1004
- - ❌ Incorporate into products/services you sell to others
1005
- - ❌ Offer as a hosted service or SaaS
322
+ New contributors should start with issues labeled [starter-task](https://github.com/iloom-ai/iloom-cli/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task). For details, see our [Contributing Guide](CONTRIBUTING.md).
1006
323
 
1007
- **Converts to Apache 2.0 on 2029-01-01** - Becomes fully open source automatically.
324
+ License & Name
325
+ --------------
1008
326
 
1009
- For commercial licensing inquiries, contact Adam Creeger.
327
+ **iloom** comes from "illuminate" (illuminating the AI coding process) and "intelligent loom" (weaving artificial and human intelligence together).
1010
328
 
1011
- See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
329
+ **License: Business Source License 1.1**
1012
330
 
1013
- ## About the Name
331
+ * ✅ Free to use for any internal or commercial project.
332
+
333
+ * ❌ You cannot resell iloom itself as a product or SaaS.
334
+
335
+ * Converts to Apache 2.0 on 2029-01-01.
336
+
1014
337
 
1015
- **iloom** comes from "illuminate" - it illuminates the mysterious AI coding process - and "intelligent loom" that weaves artificial and human intelligence together.
338
+ See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.