@iloom/cli 0.2.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.
- package/README.md +234 -667
- package/dist/BranchNamingService-OMWKUYMM.js +13 -0
- package/dist/ClaudeContextManager-3VXA6UPR.js +13 -0
- package/dist/ClaudeService-6CPK43N4.js +12 -0
- package/dist/GitHubService-EBOETDIW.js +11 -0
- package/dist/{LoomLauncher-CTSWJL35.js → LoomLauncher-JF7JZMTZ.js} +63 -32
- package/dist/LoomLauncher-JF7JZMTZ.js.map +1 -0
- package/dist/ProjectCapabilityDetector-34LU7JJ4.js +9 -0
- package/dist/{PromptTemplateManager-WII75TKH.js → PromptTemplateManager-A52RUAMS.js} +2 -2
- package/dist/README.md +234 -667
- package/dist/{SettingsManager-XOYCLH3D.js → SettingsManager-ZCWJ56WP.js} +12 -4
- package/dist/SettingsMigrationManager-AGIIIPDQ.js +10 -0
- package/dist/agents/iloom-issue-analyze-and-plan.md +125 -35
- package/dist/agents/iloom-issue-analyzer.md +284 -32
- package/dist/agents/iloom-issue-complexity-evaluator.md +40 -21
- package/dist/agents/iloom-issue-enhancer.md +69 -48
- package/dist/agents/iloom-issue-implementer.md +36 -25
- package/dist/agents/iloom-issue-planner.md +35 -24
- package/dist/agents/iloom-issue-reviewer.md +62 -9
- package/dist/{chunk-SWCRXDZC.js → chunk-3RUPPQRG.js} +1 -18
- package/dist/chunk-3RUPPQRG.js.map +1 -0
- package/dist/{chunk-HBVFXN7R.js → chunk-4BGK7T6X.js} +26 -3
- package/dist/chunk-4BGK7T6X.js.map +1 -0
- package/dist/{chunk-6LEQW46Y.js → chunk-4E4LD3QR.js} +72 -2
- package/dist/{chunk-6LEQW46Y.js.map → chunk-4E4LD3QR.js.map} +1 -1
- package/dist/{chunk-CWR2SANQ.js → chunk-EBISESAP.js} +1 -1
- package/dist/{chunk-TS6DL67T.js → chunk-G2IEYOLQ.js} +11 -38
- package/dist/chunk-G2IEYOLQ.js.map +1 -0
- package/dist/chunk-HBYZH6GD.js +1989 -0
- package/dist/chunk-HBYZH6GD.js.map +1 -0
- package/dist/chunk-INW24J2W.js +55 -0
- package/dist/chunk-INW24J2W.js.map +1 -0
- package/dist/{chunk-ZMNQBJUI.js → chunk-IP7SMKIF.js} +61 -22
- package/dist/chunk-IP7SMKIF.js.map +1 -0
- package/dist/{chunk-4IV6W4U5.js → chunk-IXKLYTWO.js} +12 -12
- package/dist/chunk-IXKLYTWO.js.map +1 -0
- package/dist/{chunk-JNKJ7NJV.js → chunk-JKXJ7BGL.js} +6 -2
- package/dist/{chunk-JNKJ7NJV.js.map → chunk-JKXJ7BGL.js.map} +1 -1
- package/dist/{chunk-LAPY6NAE.js → chunk-JQFO7QQN.js} +68 -12
- package/dist/{chunk-LAPY6NAE.js.map → chunk-JQFO7QQN.js.map} +1 -1
- package/dist/{SettingsMigrationManager-MTQIMI54.js → chunk-KLBYVHPK.js} +3 -2
- package/dist/{chunk-USVVV3FP.js → chunk-MKWYLDFK.js} +5 -5
- package/dist/chunk-O5OH5MRX.js +396 -0
- package/dist/chunk-O5OH5MRX.js.map +1 -0
- package/dist/{chunk-DJUGYNQE.js → chunk-PA6Q6AWM.js} +16 -3
- package/dist/chunk-PA6Q6AWM.js.map +1 -0
- package/dist/chunk-RO26VS3W.js +444 -0
- package/dist/chunk-RO26VS3W.js.map +1 -0
- package/dist/{chunk-VETG35MF.js → chunk-TSKY3JI7.js} +3 -3
- package/dist/{chunk-VETG35MF.js.map → chunk-TSKY3JI7.js.map} +1 -1
- package/dist/{chunk-LHP6ROUM.js → chunk-U5QDY7ZD.js} +4 -16
- package/dist/chunk-U5QDY7ZD.js.map +1 -0
- package/dist/{chunk-SPYPLHMK.js → chunk-VU3QMIP2.js} +34 -2
- package/dist/chunk-VU3QMIP2.js.map +1 -0
- package/dist/{chunk-PVAVNJKS.js → chunk-WEN5C5DM.js} +10 -1
- package/dist/chunk-WEN5C5DM.js.map +1 -0
- package/dist/{chunk-2PLUQT6J.js → chunk-XPKDPZ5D.js} +2 -2
- package/dist/{chunk-RF2YI2XJ.js → chunk-ZBQVSHVT.js} +5 -5
- package/dist/chunk-ZBQVSHVT.js.map +1 -0
- package/dist/{chunk-GZP4UGGM.js → chunk-ZM3CFL5L.js} +2 -2
- package/dist/{chunk-BLCTGFZN.js → chunk-ZT3YZB4K.js} +3 -4
- package/dist/chunk-ZT3YZB4K.js.map +1 -0
- package/dist/{chunk-MFU53H6J.js → chunk-ZWFBBPJI.js} +6 -6
- package/dist/{chunk-MFU53H6J.js.map → chunk-ZWFBBPJI.js.map} +1 -1
- package/dist/{claude-ZIWDG4XG.js → claude-LUZ35IMK.js} +2 -2
- package/dist/{cleanup-FEIVZSIV.js → cleanup-3MONU4PU.js} +88 -27
- package/dist/cleanup-3MONU4PU.js.map +1 -0
- package/dist/cli.js +2511 -62
- package/dist/cli.js.map +1 -1
- package/dist/{contribute-EMZKCAC6.js → contribute-UWJAGIG7.js} +6 -6
- package/dist/{feedback-LFNMQBAZ.js → feedback-W3BXTGIM.js} +15 -14
- package/dist/{feedback-LFNMQBAZ.js.map → feedback-W3BXTGIM.js.map} +1 -1
- package/dist/{git-WC6HZLOT.js → git-34Z6QVDS.js} +4 -2
- package/dist/{ignite-MQWVJEAB.js → ignite-KVJEFXNO.js} +32 -27
- package/dist/ignite-KVJEFXNO.js.map +1 -0
- package/dist/index.d.ts +359 -45
- package/dist/index.js +1267 -503
- package/dist/index.js.map +1 -1
- package/dist/{init-GJDYN2IK.js → init-L55Q73H4.js} +104 -40
- package/dist/init-L55Q73H4.js.map +1 -0
- package/dist/mcp/issue-management-server.js +934 -0
- package/dist/mcp/issue-management-server.js.map +1 -0
- package/dist/{neon-helpers-ZVIRPKCI.js → neon-helpers-WPUACUVC.js} +3 -3
- package/dist/neon-helpers-WPUACUVC.js.map +1 -0
- package/dist/{open-NXSN7XOC.js → open-LNRZL3UU.js} +39 -36
- package/dist/open-LNRZL3UU.js.map +1 -0
- package/dist/{prompt-ANTQWHUF.js → prompt-7INJ7YRU.js} +4 -2
- package/dist/prompt-7INJ7YRU.js.map +1 -0
- package/dist/prompts/init-prompt.txt +541 -98
- package/dist/prompts/issue-prompt.txt +27 -27
- package/dist/{rebase-DUNFOJVS.js → rebase-C4WNCVGM.js} +6 -6
- package/dist/{remote-ZCXJVVNW.js → remote-VUNCQZ6J.js} +3 -2
- package/dist/remote-VUNCQZ6J.js.map +1 -0
- package/dist/{run-O7ZK7CKA.js → run-IOGNIOYN.js} +39 -36
- package/dist/run-IOGNIOYN.js.map +1 -0
- package/dist/schema/settings.schema.json +59 -3
- package/dist/{test-git-T76HOTIA.js → test-git-J7I5MFYH.js} +3 -3
- package/dist/{test-prefix-6HJUVQMH.js → test-prefix-ZCONBCBX.js} +3 -3
- package/dist/{test-webserver-M2I3EV4J.js → test-webserver-DAHONWCS.js} +4 -4
- package/dist/test-webserver-DAHONWCS.js.map +1 -0
- package/package.json +3 -2
- package/dist/ClaudeContextManager-LVCYRM6Q.js +0 -13
- package/dist/ClaudeService-WVTWB3DK.js +0 -12
- package/dist/GitHubService-7E2S5NNZ.js +0 -11
- package/dist/LoomLauncher-CTSWJL35.js.map +0 -1
- package/dist/add-issue-OBI325W7.js +0 -69
- package/dist/add-issue-OBI325W7.js.map +0 -1
- package/dist/chunk-4IV6W4U5.js.map +0 -1
- package/dist/chunk-BLCTGFZN.js.map +0 -1
- package/dist/chunk-CVLAZRNB.js +0 -54
- package/dist/chunk-CVLAZRNB.js.map +0 -1
- package/dist/chunk-DJUGYNQE.js.map +0 -1
- package/dist/chunk-H4E4THUZ.js +0 -55
- package/dist/chunk-H4E4THUZ.js.map +0 -1
- package/dist/chunk-H5LDRGVK.js +0 -642
- package/dist/chunk-H5LDRGVK.js.map +0 -1
- package/dist/chunk-HBVFXN7R.js.map +0 -1
- package/dist/chunk-LHP6ROUM.js.map +0 -1
- package/dist/chunk-PVAVNJKS.js.map +0 -1
- package/dist/chunk-RF2YI2XJ.js.map +0 -1
- package/dist/chunk-SPYPLHMK.js.map +0 -1
- package/dist/chunk-SWCRXDZC.js.map +0 -1
- package/dist/chunk-SYOSCMIT.js +0 -545
- package/dist/chunk-SYOSCMIT.js.map +0 -1
- package/dist/chunk-T3KEIB4D.js +0 -243
- package/dist/chunk-T3KEIB4D.js.map +0 -1
- package/dist/chunk-TS6DL67T.js.map +0 -1
- package/dist/chunk-ZMNQBJUI.js.map +0 -1
- package/dist/cleanup-FEIVZSIV.js.map +0 -1
- package/dist/enhance-MNA4ZGXW.js +0 -176
- package/dist/enhance-MNA4ZGXW.js.map +0 -1
- package/dist/finish-TX5CJICB.js +0 -1749
- package/dist/finish-TX5CJICB.js.map +0 -1
- package/dist/ignite-MQWVJEAB.js.map +0 -1
- package/dist/init-GJDYN2IK.js.map +0 -1
- package/dist/mcp/chunk-6SDFJ42P.js +0 -62
- package/dist/mcp/chunk-6SDFJ42P.js.map +0 -1
- package/dist/mcp/claude-NDFOCQQQ.js +0 -249
- package/dist/mcp/claude-NDFOCQQQ.js.map +0 -1
- package/dist/mcp/color-QS5BFCNN.js +0 -168
- package/dist/mcp/color-QS5BFCNN.js.map +0 -1
- package/dist/mcp/github-comment-server.js +0 -168
- package/dist/mcp/github-comment-server.js.map +0 -1
- package/dist/mcp/terminal-OMNRFWB3.js +0 -227
- package/dist/mcp/terminal-OMNRFWB3.js.map +0 -1
- package/dist/open-NXSN7XOC.js.map +0 -1
- package/dist/run-O7ZK7CKA.js.map +0 -1
- package/dist/start-73I5W7WW.js +0 -983
- package/dist/start-73I5W7WW.js.map +0 -1
- package/dist/test-webserver-M2I3EV4J.js.map +0 -1
- /package/dist/{ClaudeContextManager-LVCYRM6Q.js.map → BranchNamingService-OMWKUYMM.js.map} +0 -0
- /package/dist/{ClaudeService-WVTWB3DK.js.map → ClaudeContextManager-3VXA6UPR.js.map} +0 -0
- /package/dist/{GitHubService-7E2S5NNZ.js.map → ClaudeService-6CPK43N4.js.map} +0 -0
- /package/dist/{PromptTemplateManager-WII75TKH.js.map → GitHubService-EBOETDIW.js.map} +0 -0
- /package/dist/{SettingsManager-XOYCLH3D.js.map → ProjectCapabilityDetector-34LU7JJ4.js.map} +0 -0
- /package/dist/{claude-ZIWDG4XG.js.map → PromptTemplateManager-A52RUAMS.js.map} +0 -0
- /package/dist/{git-WC6HZLOT.js.map → SettingsManager-ZCWJ56WP.js.map} +0 -0
- /package/dist/{neon-helpers-ZVIRPKCI.js.map → SettingsMigrationManager-AGIIIPDQ.js.map} +0 -0
- /package/dist/{chunk-CWR2SANQ.js.map → chunk-EBISESAP.js.map} +0 -0
- /package/dist/{SettingsMigrationManager-MTQIMI54.js.map → chunk-KLBYVHPK.js.map} +0 -0
- /package/dist/{chunk-USVVV3FP.js.map → chunk-MKWYLDFK.js.map} +0 -0
- /package/dist/{chunk-2PLUQT6J.js.map → chunk-XPKDPZ5D.js.map} +0 -0
- /package/dist/{chunk-GZP4UGGM.js.map → chunk-ZM3CFL5L.js.map} +0 -0
- /package/dist/{prompt-ANTQWHUF.js.map → claude-LUZ35IMK.js.map} +0 -0
- /package/dist/{contribute-EMZKCAC6.js.map → contribute-UWJAGIG7.js.map} +0 -0
- /package/dist/{remote-ZCXJVVNW.js.map → git-34Z6QVDS.js.map} +0 -0
- /package/dist/{rebase-DUNFOJVS.js.map → rebase-C4WNCVGM.js.map} +0 -0
- /package/dist/{test-git-T76HOTIA.js.map → test-git-J7I5MFYH.js.map} +0 -0
- /package/dist/{test-prefix-6HJUVQMH.js.map → test-prefix-ZCONBCBX.js.map} +0 -0
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
iloom
|
|
2
|
+
=====
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@iloom/cli)
|
|
@@ -10,14 +10,13 @@
|
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
12
|
<div align="center">
|
|
13
|
-
<img width="
|
|
14
|
-
<div>Scale understanding, not just output.</div>
|
|
15
|
-
|
|
13
|
+
<img width="600" alt="iloom-ai-screenshot" src="https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/assets/iloom-screenshot.png" />
|
|
14
|
+
<div>iloom in action: Scale understanding, not just output.</div>
|
|
16
15
|
</div>
|
|
17
16
|
|
|
18
17
|
#### 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
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)
|
|
21
20
|
|
|
22
21
|
## Built For Modern Tools...
|
|
23
22
|
|
|
@@ -27,745 +26,313 @@
|
|
|
27
26
|
[](https://neon.tech/)
|
|
28
27
|
[](https://claude.ai/)
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
## ...To Solve A Very Modern Problem
|
|
33
|
-
|
|
34
|
-
The promise of AI-assisted development is profound: write more code, ship features faster, handle complexity at scale. But there's a hidden cost that many tools ignore.
|
|
35
|
-
|
|
36
|
-
**AI agents write code quickly. They struggle to stay in sync with their humans.**
|
|
37
|
-
|
|
38
|
-
The hard part is not writing a ton of code. It's knowing what decisions your AI is making, what assumptions it's operating under, and why it's producing what it produces.
|
|
39
|
-
|
|
40
|
-
Friction piles up:
|
|
41
|
-
- You open new chats for each problem and rebuild context in your head.
|
|
42
|
-
- Mental overhead grows. Stress rises. Momentum drops.
|
|
43
|
-
- Hidden assumptions creep in. The AI picks Axios when your team standardizes on fetch. It reaches for the wrong auth pattern.
|
|
44
|
-
- Hit a context limit and the model forgets what matters.
|
|
45
|
-
|
|
46
|
-
The outcome is familiar: more time briefing the AI than building, more time fixing than shipping. Work can look finished while somehow shrouded in mystery.
|
|
47
|
-
|
|
48
|
-
**The bottleneck isn't output velocity. It's maintaining shared understanding between human and AI at scale.**
|
|
49
|
-
|
|
50
|
-
*iloom treats context as a first-class concern. It's not a tool for managing branches - it's a control plane for maintaining alignment between you and your AI assistant.*
|
|
51
|
-
|
|
52
|
-
## How iloom Solves This
|
|
29
|
+
...To Solve A Very Modern Problem
|
|
30
|
+
---------------------------------
|
|
53
31
|
|
|
54
|
-
|
|
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.**
|
|
55
33
|
|
|
56
|
-
|
|
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
|
-
```
|
|
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:
|
|
84
35
|
|
|
85
|
-
|
|
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
|
+
|
|
86
42
|
|
|
87
|
-
|
|
43
|
+
**The bottleneck isn't output velocity. It's maintaining alignment between human and AI at scale.**
|
|
88
44
|
|
|
89
|
-
|
|
45
|
+
### The iloom Approach: Context as Infrastructure
|
|
90
46
|
|
|
91
|
-
|
|
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.
|
|
92
48
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
+
|
|
98
55
|
|
|
99
|
-
|
|
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._
|
|
100
57
|
|
|
101
|
-
|
|
58
|
+
Quick Start
|
|
59
|
+
-----------
|
|
102
60
|
|
|
61
|
+
iloom uses your existing Claude subscription to build a shared mental model of your task.
|
|
103
62
|
```bash
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
#
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
### The
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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:
|
|
165
156
|
|
|
166
157
|
```bash
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
iloom executes a multi-phase context-establishment workflow:
|
|
158
|
+
# Standard wizard
|
|
159
|
+
il init
|
|
171
160
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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
|
|
161
|
+
# Natural language wizard
|
|
162
|
+
il init "set my IDE to windsurf and help me configure linear"
|
|
163
|
+
```
|
|
181
164
|
|
|
182
|
-
|
|
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
|
|
165
|
+
### 2. Manual Configuration
|
|
188
166
|
|
|
189
|
-
|
|
167
|
+
Settings are loaded in this order (highest priority first):
|
|
190
168
|
|
|
191
|
-
|
|
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
|
+
|
|
192
177
|
|
|
193
|
-
|
|
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
|
|
178
|
+
### Key Settings Example
|
|
199
179
|
|
|
200
|
-
|
|
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
|
-
# Behavior depends on mergeBehavior.mode setting:
|
|
320
|
-
# local (default): Merge locally and cleanup
|
|
321
|
-
# github-pr: Push branch, create PR, prompt for cleanup
|
|
322
|
-
# Alias: dn
|
|
323
|
-
# Options:
|
|
324
|
-
# -f, --force - Skip confirmation prompts
|
|
325
|
-
# -n, --dry-run - Preview actions without executing
|
|
326
|
-
# --skip-build - Skip post-merge build verification
|
|
327
|
-
# --no-browser - Skip opening PR in browser (github-pr mode only)
|
|
328
|
-
# --cleanup - Clean up worktree after PR creation (github-pr mode only)
|
|
329
|
-
# --no-cleanup - Keep worktree after PR creation (github-pr mode only)
|
|
330
|
-
|
|
331
|
-
iloom rebase
|
|
332
|
-
# Rebase current branch on main with Claude-assisted conflict resolution (run this from a loom directory)
|
|
333
|
-
# Options:
|
|
334
|
-
# -f, --force - Skip confirmation prompts
|
|
335
|
-
# -n, --dry-run - Preview actions without executing
|
|
336
|
-
|
|
337
|
-
iloom cleanup [identifier...]
|
|
338
|
-
# Remove a loom without merging (safely, by default)
|
|
339
|
-
|
|
340
|
-
iloom list
|
|
341
|
-
# Show active looms with their ports and paths
|
|
342
|
-
|
|
343
|
-
iloom spin
|
|
344
|
-
# Launch Claude with auto-detected loom context
|
|
345
|
-
# Options:
|
|
346
|
-
# --one-shot=<mode> - Same automation modes as 'start'
|
|
347
|
-
|
|
348
|
-
iloom open [identifier]
|
|
349
|
-
# Open loom in browser (web projects) or run configured CLI tool
|
|
350
|
-
```
|
|
351
|
-
|
|
352
|
-
### Issue Management
|
|
353
|
-
|
|
354
|
-
```bash
|
|
355
|
-
iloom add-issue <description>
|
|
356
|
-
# Create and AI-enhance GitHub issue (doesn't spin up a loom)
|
|
357
|
-
# Alias: a
|
|
358
|
-
# Example: il add-issue "Add dark mode toggle to settings"
|
|
359
|
-
|
|
360
|
-
iloom enhance <issue-number>
|
|
361
|
-
# Apply AI enhancement agent to existing GitHub issue
|
|
362
|
-
# Expands requirements, asks clarifying questions and adds implementation context
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
## Providing Feedback
|
|
366
|
-
|
|
367
|
-
Found a bug, have a feature request, or want to contribute ideas to improve iloom CLI? Submit feedback directly from your terminal.
|
|
368
|
-
|
|
369
|
-
```bash
|
|
370
|
-
iloom feedback <description>
|
|
371
|
-
# Submit feedback/bug report to iloom-cli repository
|
|
372
|
-
# Alias: f
|
|
373
|
-
# Example: il feedback "Add support for Linear issue tracking"
|
|
374
|
-
# Example: il feedback "The worktree cleanup seems to leave temp files behind"
|
|
375
|
-
```
|
|
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.
|
|
376
181
|
|
|
377
|
-
|
|
182
|
+
**.iloom/settings.json (Committed)**
|
|
378
183
|
|
|
379
|
-
|
|
380
|
-
2. **Browser Opening**: Opens the created issue in your browser for you to review and add additional context
|
|
381
|
-
3. **AI Enhancement**: Within a couple of minutes, your feedback gets enhanced by iloom to provide clear context and actionable details
|
|
382
|
-
|
|
383
|
-
**Open the browser to provide additional context. Please:**
|
|
384
|
-
- Be specific about what you expected vs. what happened
|
|
385
|
-
- Include your environment details if reporting a bug (OS, Node version, etc.)
|
|
386
|
-
- Mention the command or workflow that had issues
|
|
387
|
-
- Suggest improvements or alternative approaches if you have ideas
|
|
388
|
-
|
|
389
|
-
Your feedback helps make iloom better for everyone! Issues created through `iloom feedback` are prioritized and reviewed regularly.
|
|
390
|
-
|
|
391
|
-
### Maintenance
|
|
392
|
-
|
|
393
|
-
```bash
|
|
394
|
-
iloom init
|
|
395
|
-
# Interactive Claude-powered configuration wizard
|
|
396
|
-
# Sets up settings.json, .gitignore, and guides you through all configuration options
|
|
397
|
-
# Automatically detects multi-remote setups and helps you configure GitHub integration
|
|
398
|
-
# Alias: il config
|
|
399
|
-
# Run this once per project
|
|
400
|
-
|
|
401
|
-
iloom contribute
|
|
402
|
-
# Set up local development environment for contributing to iloom
|
|
403
|
-
# Automatically forks the repository, clones it locally, configures upstream remote,
|
|
404
|
-
# and runs il init to complete setup
|
|
405
|
-
# Streamlines contributor onboarding with a single command
|
|
406
|
-
|
|
407
|
-
iloom update
|
|
408
|
-
# Update iloom-cli to the latest version
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
## Configuration
|
|
412
|
-
|
|
413
|
-
### Interactive Configuration Wizard
|
|
414
|
-
|
|
415
|
-
The recommended way to configure iloom:
|
|
416
|
-
|
|
417
|
-
```bash
|
|
418
|
-
iloom init
|
|
419
|
-
# or
|
|
420
|
-
il config
|
|
421
|
-
```
|
|
422
|
-
|
|
423
|
-
This Claude-powered assistant will guide you through all configuration options and automatically:
|
|
424
|
-
- Create and configure `.iloom/settings.json` and `.iloom/settings.local.json`
|
|
425
|
-
- Set up `.gitignore` entries
|
|
426
|
-
- Help you choose the right GitHub remote (if you have multiple)
|
|
427
|
-
- Configure database providers (Neon, etc.)
|
|
428
|
-
- Set workflow permissions and preferences
|
|
429
|
-
- Explain each option as you go
|
|
430
|
-
|
|
431
|
-
For most users, this is all you need. The wizard creates the files and explains everything as you configure it.
|
|
432
|
-
|
|
433
|
-
### Manual Configuration Files
|
|
434
|
-
|
|
435
|
-
If you prefer manual configuration, iloom uses these files (highest to lowest priority):
|
|
436
|
-
|
|
437
|
-
1. **CLI arguments** - Command-line flags (e.g., `--one-shot bypassPermissions`)
|
|
438
|
-
2. **`.iloom/settings.local.json`** - Local machine settings (gitignored, not committed)
|
|
439
|
-
3. **`.iloom/settings.json`** - Project-wide settings (committed to repository)
|
|
440
|
-
4. **Built-in defaults** - Hardcoded fallback values
|
|
441
|
-
|
|
442
|
-
This allows teams to share project defaults via `settings.json` while individual developers maintain personal overrides in `settings.local.json`.
|
|
443
|
-
|
|
444
|
-
**Example Use Cases:**
|
|
445
|
-
- Developer needs different `basePort` due to port conflicts
|
|
446
|
-
- Local database connection strings that differ from team defaults
|
|
447
|
-
- Personal preferences for `permissionMode` or component launch flags
|
|
448
|
-
|
|
449
|
-
**Note:** The `.iloom/settings.local.json` file is automatically created and gitignored when you run `il init`.
|
|
450
|
-
|
|
451
|
-
### Key Configuration:
|
|
452
|
-
|
|
453
|
-
```jsonc
|
|
184
|
+
```json
|
|
454
185
|
{
|
|
455
186
|
"mainBranch": "main",
|
|
456
|
-
"
|
|
457
|
-
"
|
|
458
|
-
"remote": "upstream" // optional, defaults to issueManagement.github.remote
|
|
187
|
+
"issueManagement": {
|
|
188
|
+
"provider": "github"
|
|
459
189
|
},
|
|
460
190
|
"capabilities": {
|
|
461
|
-
"web": {
|
|
462
|
-
|
|
191
|
+
"web": {
|
|
192
|
+
"basePort": 3000
|
|
193
|
+
},
|
|
194
|
+
"database": {
|
|
195
|
+
"databaseUrlEnvVarName": "DATABASE_URL"
|
|
196
|
+
}
|
|
463
197
|
},
|
|
464
198
|
"databaseProviders": {
|
|
465
199
|
"neon": {
|
|
466
|
-
"projectId": "fantastic-fox-3566354"
|
|
467
|
-
|
|
200
|
+
"projectId": "fantastic-fox-3566354"
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**.iloom/settings.local.json (Gitignored)**
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"issueManagement": {
|
|
211
|
+
"linear": {
|
|
212
|
+
"apiToken": "lin_api_..." // Only if using Linear
|
|
468
213
|
}
|
|
469
214
|
},
|
|
470
215
|
"workflows": {
|
|
471
216
|
"issue": {
|
|
472
|
-
"permissionMode": "
|
|
473
|
-
"startIde": true,
|
|
474
|
-
"startDevServer": true,
|
|
475
|
-
"startAiAgent": true,
|
|
476
|
-
"startTerminal": false
|
|
217
|
+
"permissionMode": "acceptEdits" // Control Claude Code permissions
|
|
477
218
|
}
|
|
478
|
-
},
|
|
479
|
-
"agents": {
|
|
480
|
-
"iloom-issue-enhancer": {"model":"opus"},
|
|
481
|
-
"iloom-issue-analyzer": {"model":"opus"},
|
|
482
|
-
"iloom-issue-analyze-and-plan": {"model":"opus"},
|
|
483
|
-
"iloom-issue-implementer": {"model":"haiku"}
|
|
484
219
|
}
|
|
485
220
|
}
|
|
486
221
|
```
|
|
487
222
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
- **Haiku for implementation** - Cost-effective execution of detailed plans (recommended for token-conscious users)
|
|
491
|
-
|
|
492
|
-
** Common configuration options:**
|
|
493
|
-
- `mainBranch` - Primary branch for merging (default: "main")
|
|
494
|
-
- `mergeBehavior.mode` - How to finish work: "local" (merge locally) or "github-pr" (create PR) (default: "local")
|
|
495
|
-
- `mergeBehavior.remote` - Remote to target for PRs (optional, defaults to `issueManagement.github.remote`)
|
|
496
|
-
- `capabilities.web.basePort` - Base port for dev servers (default: 3000)
|
|
497
|
-
- `capabilities.database.databaseUrlEnvVarName` - Name of environment variable for database connection URL (default: "DATABASE_URL")
|
|
498
|
-
- `databaseProviders.neon.projectId` - Neon project ID (found in project URL, e.g., "fantastic-fox-3566354")
|
|
499
|
-
- `databaseProviders.neon.parentBranch` - Branch from which new database branches are created (default: "main")
|
|
500
|
-
- `workflows` - Per-workflow Claude CLI permission modes and tool launching
|
|
501
|
-
- `agents` - Claude model selection (sonnet/opus/haiku) per agent type
|
|
223
|
+
Integrations
|
|
224
|
+
------------
|
|
502
225
|
|
|
503
|
-
|
|
226
|
+
### Issue Trackers
|
|
504
227
|
|
|
505
|
-
|
|
506
|
-
Example: Issue #25 with basePort 3000 = port 3025
|
|
228
|
+
iloom supports the tools you already use. Unless you use JIRA.
|
|
507
229
|
|
|
508
|
-
|
|
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. |
|
|
509
234
|
|
|
510
|
-
## Requirements
|
|
511
235
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
- Node.js 16+
|
|
515
|
-
- Git 2.5+ (for worktree support)
|
|
516
|
-
- GitHub CLI (`gh`) - authenticated with your repository
|
|
236
|
+
### IDE Support
|
|
237
|
+
iloom creates isolated workspace settings for your editor. Color synchronization (visual context) only works best VS Code-based editors.
|
|
517
238
|
|
|
518
|
-
**
|
|
519
|
-
|
|
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
|
+
|
|
520
243
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
- **VS Code** - Color-coded editor windows for visual context
|
|
524
|
-
- **iTerm2** (macOS only) - Enhanced terminal experience with dual tabs in a single window (when configured to open both Claude and start a dev server)
|
|
244
|
+
Advanced Features
|
|
245
|
+
-----------------
|
|
525
246
|
|
|
526
|
-
|
|
247
|
+
### Child Looms (Nested Contexts)
|
|
527
248
|
|
|
528
|
-
|
|
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.
|
|
529
250
|
|
|
530
|
-
|
|
251
|
+
**When to use:**
|
|
531
252
|
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
253
|
+
* Breaking down a massive feature into smaller PRs.
|
|
254
|
+
|
|
255
|
+
* Fixing a bug discovered during feature work without losing context.
|
|
256
|
+
|
|
535
257
|
|
|
536
|
-
**
|
|
537
|
-
- ✅ **GitHub Issues** - Full support with AI enhancement, analysis, and planning
|
|
538
|
-
- 🚧 **Linear** - Native integration coming soon. A two way sync between Linear and your github repo works great currently.
|
|
258
|
+
**How it works:** If you run il start 42 while inside loom-25, iloom asks if you want to create a child loom.
|
|
539
259
|
|
|
540
|
-
**
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
- 🔧 **Other tech stacks** - Can work now via package.json scripts, native support coming later (open to help!)
|
|
544
|
-
|
|
545
|
-
We (Claude and I) are actively working on expanding platform and integration support. Contributions welcome!
|
|
546
|
-
|
|
547
|
-
## Installation
|
|
548
|
-
|
|
549
|
-
```bash
|
|
550
|
-
# Install globally
|
|
551
|
-
> npm install -g @iloom/cli
|
|
552
|
-
|
|
553
|
-
# Authenticate with GitHub
|
|
554
|
-
> gh auth login
|
|
555
|
-
# do `gh auth login --scopes project` to automatically move issues to in progress
|
|
556
|
-
|
|
557
|
-
# Initialize in your project
|
|
558
|
-
> cd your-project
|
|
559
|
-
> il init
|
|
560
|
-
|
|
561
|
-
# Start working
|
|
562
|
-
> il start 25 # existing issue
|
|
563
|
-
> il start "Enable log in/sign up with Google account" # new issue
|
|
260
|
+
* **Inheritance:** The child inherits the database state and git branch from the parent (not main).
|
|
261
|
+
|
|
262
|
+
* **Structure**
|
|
564
263
|
```
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
```bash
|
|
571
|
-
> il start 125 # PR number instead of issue number
|
|
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
|
|
572
269
|
```
|
|
573
270
|
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
## Architecture
|
|
577
|
-
|
|
578
|
-
**Technologies:**
|
|
579
|
-
- TypeScript CLI built with Commander.js
|
|
580
|
-
- Git worktrees for loom isolation
|
|
581
|
-
- GitHub CLI integration for issues/PRs
|
|
582
|
-
- Integration with node-based web servers via standard package.json scripts
|
|
583
|
-
- Database branching (Neon) - optional
|
|
584
|
-
- Claude CLI integration for AI assistance to resolve compilation/test/lint/merge errors
|
|
585
|
-
|
|
586
|
-
**Project structure:**
|
|
587
|
-
```
|
|
588
|
-
src/
|
|
589
|
-
├── commands/ # CLI commands (start, finish, cleanup, list, add-issue, enhance, spin, init, open)
|
|
590
|
-
├── lib/ # Core business logic (WorkspaceManager, GitWorktreeManager, etc.)
|
|
591
|
-
├── utils/ # Utility functions (git, github, env, database, shell)
|
|
592
|
-
└── types/ # TypeScript definitions
|
|
593
|
-
```
|
|
271
|
+
### CLI Tool Development
|
|
594
272
|
|
|
595
|
-
|
|
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.
|
|
596
274
|
|
|
597
|
-
### Node.js Web Project Support
|
|
598
|
-
|
|
599
|
-
iloom provides first-class support for Node.js web applications (next/express/vite, etc) through standardized package.json scripts:
|
|
600
|
-
|
|
601
|
-
**Required scripts** (auto-detected):
|
|
602
|
-
- `dev` - Start development server (launched automatically with unique port)
|
|
603
|
-
- `test` - Run test suite (executed during `il finish` validation)
|
|
604
|
-
|
|
605
|
-
**Optional scripts**:
|
|
606
|
-
- `lint` - Code quality checks (run during `il finish` if present)
|
|
607
|
-
- `typecheck` - TypeScript validation (run during `il finish` if present)
|
|
608
|
-
|
|
609
|
-
**How it integrates:**
|
|
610
275
|
|
|
611
276
|
```bash
|
|
612
|
-
> il start
|
|
613
|
-
# ✅ Runs `pnpm install` in worktree
|
|
614
|
-
# ✅ Launches `pnpm dev` on port 3025 (3000 + issue number)
|
|
615
|
-
# ✅ Sets up database branch with correct DATABASE_URL
|
|
616
|
-
|
|
617
|
-
> il finish
|
|
618
|
-
# ✅ Runs `pnpm test` (fails if tests fail)
|
|
619
|
-
# ✅ Runs `pnpm typecheck` if configured
|
|
620
|
-
# ✅ Runs `pnpm lint` if configured
|
|
621
|
-
# ✅ AI assists with any failures automatically
|
|
622
|
-
```
|
|
277
|
+
> il start 52 # Working on CLI feature in issue 52
|
|
623
278
|
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
iloom was built using iloom itself. CLI tools get the same isolation benefits as web projects, plus **isolated executable access per loom**.
|
|
627
|
-
|
|
628
|
-
**How it works:**
|
|
629
|
-
|
|
630
|
-
When you create a loom for a CLI project, iloom creates workspace-specific binaries so you can test each issue's version independently:
|
|
631
|
-
|
|
632
|
-
```bash
|
|
633
|
-
> il start 52 # Working on CLI feature in issue 52
|
|
634
|
-
> cli-tool-52 --version # Test issue 52's version
|
|
279
|
+
> my-cli-52 --version # Test issue 52's version
|
|
635
280
|
|
|
636
281
|
> il start 137 # Switch to different CLI issue
|
|
637
|
-
|
|
282
|
+
|
|
283
|
+
> my-cli-137 --help # Test issue 137's version
|
|
638
284
|
|
|
639
285
|
# Original binary still works from main branch
|
|
640
|
-
> cli
|
|
286
|
+
> my-cli --version # Unaffected by other looms' CLIs
|
|
641
287
|
```
|
|
642
288
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
- Issue 52: `cli-tool-52`
|
|
646
|
-
- Issue 137: `cli-tool-137`
|
|
647
|
-
- PR 200: `cli-tool-200`
|
|
648
|
-
|
|
649
|
-
**Cleanup**: When you run `il finish`, the workspace-specific binary is automatically removed along with the worktree and any database branches.
|
|
289
|
+
System Requirements & Limitations
|
|
290
|
+
---------------------------------
|
|
650
291
|
|
|
651
|
-
This
|
|
292
|
+
This is an early-stage product.
|
|
652
293
|
|
|
294
|
+
**Requirements:**
|
|
653
295
|
|
|
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
|
+
|
|
654
302
|
|
|
655
|
-
**
|
|
303
|
+
**Project Support:**
|
|
656
304
|
|
|
657
|
-
|
|
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.
|
|
658
310
|
|
|
659
|
-
|
|
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...
|
|
660
312
|
|
|
661
|
-
|
|
313
|
+
Contributing
|
|
314
|
+
------------
|
|
662
315
|
|
|
663
|
-
|
|
316
|
+
We (Claude and I) welcome contributions! We've made it easy to get started — iloom can even set up its own dev environment.
|
|
664
317
|
|
|
665
|
-
Traditional approach:
|
|
666
318
|
```bash
|
|
667
|
-
|
|
668
|
-
# Edit files
|
|
669
|
-
> git stash # Save work
|
|
670
|
-
> git checkout feature-b # Switch branch again
|
|
671
|
-
# Edit different files
|
|
672
|
-
> git stash pop # Restore work
|
|
673
|
-
> git checkout feature-a # Switch back
|
|
319
|
+
iloom contribute # Handles forking, cloning, and setting up the dev environment automatically.
|
|
674
320
|
```
|
|
675
321
|
|
|
676
|
-
|
|
677
|
-
```bash
|
|
678
|
-
# All exist simultaneously:
|
|
679
|
-
~/project-looms/issue-25/ # feature-a checked out
|
|
680
|
-
~/project-looms/issue-30/ # feature-b checked out
|
|
681
|
-
~/project/ # main branch
|
|
682
|
-
|
|
683
|
-
# No branch switching, no stashing, less confusion
|
|
684
|
-
```
|
|
685
|
-
|
|
686
|
-
This is the foundation that enables loom isolation and persistent context. Other awesome tools use worktrees too.
|
|
687
|
-
|
|
688
|
-
### When to Choose Other Git Worktree Solutions
|
|
689
|
-
|
|
690
|
-
iloom isn't the only tool that makes git worktrees more accessible. Several excellent alternatives exist, each with different trade-offs:
|
|
691
|
-
|
|
692
|
-
**Editor-Integrated Solutions:**
|
|
693
|
-
- [VS Code Git Worktrees](https://marketplace.visualstudio.com/items?itemName=GitWorktrees.git-worktrees) - Enhanced Git worktree support in VS Code
|
|
694
|
-
- [git-worktree.nvim](https://github.com/ThePrimeagen/git-worktree.nvim) - Neovim plugin for rapid worktree management
|
|
695
|
-
|
|
696
|
-
**Apps**
|
|
697
|
-
- [Crystal](https://github.com/stravu/crystal) - Run multiple Codex and Claude Code AI sessions in parallel git worktrees
|
|
698
|
-
- [Conductor](https://conductor.build/) - Run a team of coding agents on your Mac
|
|
699
|
-
|
|
700
|
-
**CLI Helpers:**
|
|
701
|
-
- [git-worktree-wrapper](https://github.com/lu0/git-worktree-wrapper) - Manage Git worktrees with `git checkout` and `git branch` commands.
|
|
702
|
-
|
|
703
|
-
**What They Do Well:**
|
|
704
|
-
- Reduce friction of git worktree CLI commands
|
|
705
|
-
- Integrate tightly with your editor workflow
|
|
706
|
-
- Minimal learning curve if you know git
|
|
707
|
-
- Lightweight - just worktree management, nothing more
|
|
708
|
-
- Conductor and Crystal help you with Agentic coding too
|
|
709
|
-
|
|
710
|
-
**Where iloom Differs:**
|
|
711
|
-
|
|
712
|
-
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**.
|
|
713
|
-
|
|
714
|
-
**Beyond Worktrees:**
|
|
715
|
-
- **Database isolation**: Neon branch integration for schema/data separation
|
|
716
|
-
- **AI context persistence**: Structured analysis stored in GitHub comments, not local chat history
|
|
717
|
-
- **Cognitive overhead reduction**: Color coding, port assignment, environment setup handled automatically
|
|
718
|
-
- **Human-AI alignment**: Multi-phase workflow surfaces assumptions before code is written
|
|
719
|
-
- **Validation automation**: AI-assisted error fixing during merge process
|
|
720
|
-
|
|
721
|
-
**The Trade-off:**
|
|
722
|
-
|
|
723
|
-
Other tools increase code output with minimal process change. iloom increases **sustainable velocity** with a prescriptive workflow. You trade flexibility for:
|
|
724
|
-
- Persistent shared understanding between you and your AI
|
|
725
|
-
- Reduced time debugging AI misunderstandings
|
|
726
|
-
- Less context switching mental overhead
|
|
727
|
-
- Complete environment isolation (not just git)
|
|
728
|
-
|
|
729
|
-
**Choose other solutions if:**
|
|
730
|
-
- You primarily work solo without AI assistance
|
|
731
|
-
- You want minimal workflow changes
|
|
732
|
-
- You just need easier git worktree commands
|
|
733
|
-
- You don't see yourself working on multiple tasks at once
|
|
734
|
-
|
|
735
|
-
**Choose iloom if:**
|
|
736
|
-
- You're scaling AI-assisted development across multiple issues
|
|
737
|
-
- Cognitive overhead is limiting your velocity more than coding speed
|
|
738
|
-
- You work on projects with database schemas that change per feature
|
|
739
|
-
- You want AI analysis and planning visible to your whole team
|
|
740
|
-
|
|
741
|
-
## Contributing
|
|
742
|
-
|
|
743
|
-
This project follows Test-Driven Development. All code must:
|
|
744
|
-
- Be written test-first with comprehensive unit tests
|
|
745
|
-
- Achieve >70% code coverage
|
|
746
|
-
- Include regression tests against bash script behavior
|
|
747
|
-
- Use mock factories for all external dependencies
|
|
748
|
-
|
|
749
|
-
## License
|
|
750
|
-
|
|
751
|
-
**Business Source License 1.1** - Free to use for any purpose, including commercial use within your organization.
|
|
752
|
-
|
|
753
|
-
**You can:**
|
|
754
|
-
- ✅ Use freely in your organization and commercial projects
|
|
755
|
-
- ✅ Modify and distribute internally
|
|
756
|
-
- ✅ Build paid applications with it
|
|
757
|
-
|
|
758
|
-
**You cannot:**
|
|
759
|
-
- ❌ Resell iloom itself as a product or service
|
|
760
|
-
- ❌ Incorporate into products/services you sell to others
|
|
761
|
-
- ❌ 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).
|
|
762
323
|
|
|
763
|
-
|
|
324
|
+
License & Name
|
|
325
|
+
--------------
|
|
764
326
|
|
|
765
|
-
|
|
327
|
+
**iloom** comes from "illuminate" (illuminating the AI coding process) and "intelligent loom" (weaving artificial and human intelligence together).
|
|
766
328
|
|
|
767
|
-
|
|
329
|
+
**License: Business Source License 1.1**
|
|
768
330
|
|
|
769
|
-
|
|
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
|
+
|
|
770
337
|
|
|
771
|
-
|
|
338
|
+
See [LICENSE](https://raw.githubusercontent.com/iloom-ai/iloom-cli/main/LICENSE) for complete terms.
|