@mrpatronz/nexusflow 0.2.17 → 0.2.18

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 (274) hide show
  1. package/.agents/skills/ccc/SKILL.md +71 -0
  2. package/.agents/skills/ccc/references/management.md +110 -0
  3. package/.agents/skills/ccc/references/settings.md +126 -0
  4. package/.github/dependabot.yml +52 -52
  5. package/.github/workflows/ci.yml +44 -0
  6. package/.github/workflows/dependabot-merge.yml +53 -53
  7. package/.github/workflows/release-desktop.yml +67 -0
  8. package/.github/workflows/release-npm.yml +65 -0
  9. package/.github/workflows/release-vscode.yml +61 -0
  10. package/.vscode/launch.json +17 -17
  11. package/.vscode/tasks.json +17 -17
  12. package/GETTING_STARTED.md +114 -114
  13. package/README.md +364 -336
  14. package/desktop/build-installer.js +228 -228
  15. package/desktop/build.js +118 -118
  16. package/desktop/installer/nexusflow.iss +35 -35
  17. package/desktop/neutralino.config.json +38 -38
  18. package/desktop/package-lock.json +1060 -1060
  19. package/desktop/package.json +14 -14
  20. package/dist/commands/adapter.d.ts +27 -0
  21. package/dist/commands/adapter.d.ts.map +1 -0
  22. package/dist/commands/adapter.js +318 -0
  23. package/dist/commands/adapter.js.map +1 -0
  24. package/dist/commands/add-repo.d.ts.map +1 -1
  25. package/dist/commands/add-repo.js +0 -1
  26. package/dist/commands/add-repo.js.map +1 -1
  27. package/dist/commands/commands.test.js +2 -2
  28. package/dist/commands/commands.test.js.map +1 -1
  29. package/dist/commands/config.d.ts +22 -0
  30. package/dist/commands/config.d.ts.map +1 -0
  31. package/dist/commands/config.js +50 -0
  32. package/dist/commands/config.js.map +1 -0
  33. package/dist/commands/create.d.ts.map +1 -1
  34. package/dist/commands/create.js +14 -17
  35. package/dist/commands/create.js.map +1 -1
  36. package/dist/commands/doctor.d.ts.map +1 -1
  37. package/dist/commands/doctor.js +11 -0
  38. package/dist/commands/doctor.js.map +1 -1
  39. package/dist/commands/refresh.d.ts +1 -0
  40. package/dist/commands/refresh.d.ts.map +1 -1
  41. package/dist/commands/refresh.js +2 -14
  42. package/dist/commands/refresh.js.map +1 -1
  43. package/dist/commands/sync.d.ts.map +1 -1
  44. package/dist/commands/sync.js +0 -5
  45. package/dist/commands/sync.js.map +1 -1
  46. package/dist/commands/tui.d.ts.map +1 -1
  47. package/dist/commands/tui.js +63 -10
  48. package/dist/commands/tui.js.map +1 -1
  49. package/dist/core/adapters/local-storage.d.ts +14 -0
  50. package/dist/core/adapters/local-storage.d.ts.map +1 -0
  51. package/dist/core/adapters/local-storage.js +58 -0
  52. package/dist/core/adapters/local-storage.js.map +1 -0
  53. package/dist/core/adapters/obsidian-storage.d.ts +28 -0
  54. package/dist/core/adapters/obsidian-storage.d.ts.map +1 -0
  55. package/dist/core/adapters/obsidian-storage.js +135 -0
  56. package/dist/core/adapters/obsidian-storage.js.map +1 -0
  57. package/dist/core/adapters/registry.d.ts +8 -0
  58. package/dist/core/adapters/registry.d.ts.map +1 -0
  59. package/dist/core/adapters/registry.js +37 -0
  60. package/dist/core/adapters/registry.js.map +1 -0
  61. package/dist/core/adapters/storage.test.d.ts +2 -0
  62. package/dist/core/adapters/storage.test.d.ts.map +1 -0
  63. package/dist/core/adapters/storage.test.js +106 -0
  64. package/dist/core/adapters/storage.test.js.map +1 -0
  65. package/dist/core/adapters/vault-storage.d.ts +16 -0
  66. package/dist/core/adapters/vault-storage.d.ts.map +1 -0
  67. package/dist/core/adapters/vault-storage.js +77 -0
  68. package/dist/core/adapters/vault-storage.js.map +1 -0
  69. package/dist/core/config.d.ts.map +1 -1
  70. package/dist/core/config.js +28 -4
  71. package/dist/core/config.js.map +1 -1
  72. package/dist/core/plugins/index.d.ts +14 -0
  73. package/dist/core/plugins/index.d.ts.map +1 -0
  74. package/dist/core/plugins/index.js +2 -0
  75. package/dist/core/plugins/index.js.map +1 -0
  76. package/dist/core/plugins/loader.d.ts +2 -0
  77. package/dist/core/plugins/loader.d.ts.map +1 -0
  78. package/dist/core/plugins/loader.js +34 -0
  79. package/dist/core/plugins/loader.js.map +1 -0
  80. package/dist/core/ports/storage.d.ts +59 -0
  81. package/dist/core/ports/storage.d.ts.map +1 -0
  82. package/dist/core/ports/storage.js +10 -0
  83. package/dist/core/ports/storage.js.map +1 -0
  84. package/dist/core/storage.d.ts +10 -0
  85. package/dist/core/storage.d.ts.map +1 -0
  86. package/dist/core/storage.js +29 -0
  87. package/dist/core/storage.js.map +1 -0
  88. package/dist/core/workspace.d.ts.map +1 -1
  89. package/dist/core/workspace.js +110 -16
  90. package/dist/core/workspace.js.map +1 -1
  91. package/dist/generators/base.d.ts.map +1 -1
  92. package/dist/generators/base.js +80 -79
  93. package/dist/generators/base.js.map +1 -1
  94. package/dist/generators/codex.js +11 -11
  95. package/dist/generators/copilot.js +17 -17
  96. package/dist/generators/cursor.js +5 -5
  97. package/dist/generators/diff-context.d.ts +6 -0
  98. package/dist/generators/diff-context.d.ts.map +1 -0
  99. package/dist/generators/diff-context.js +68 -0
  100. package/dist/generators/diff-context.js.map +1 -0
  101. package/dist/generators/index.d.ts +1 -1
  102. package/dist/generators/index.d.ts.map +1 -1
  103. package/dist/generators/index.js +125 -68
  104. package/dist/generators/index.js.map +1 -1
  105. package/dist/generators/map-generator.d.ts.map +1 -1
  106. package/dist/generators/map-generator.js +21 -25
  107. package/dist/generators/map-generator.js.map +1 -1
  108. package/dist/generators/plan-generator.d.ts.map +1 -1
  109. package/dist/generators/plan-generator.js +3 -5
  110. package/dist/generators/plan-generator.js.map +1 -1
  111. package/dist/generators/skills-generator.js +28 -28
  112. package/dist/gui/assets/index-CB-jWded.css +1 -0
  113. package/dist/gui/assets/index-DDXpZZu3.js +25 -0
  114. package/dist/gui/icons.svg +24 -24
  115. package/dist/gui/index.html +18 -18
  116. package/dist/index.js +131 -20
  117. package/dist/index.js.map +1 -1
  118. package/dist/server.d.ts.map +1 -1
  119. package/dist/server.js +46 -43
  120. package/dist/server.js.map +1 -1
  121. package/dist/server.test.js +105 -48
  122. package/dist/server.test.js.map +1 -1
  123. package/dist/types.d.ts +7 -2
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/utils/local-ai.d.ts.map +1 -1
  126. package/dist/utils/local-ai.js +7 -3
  127. package/dist/utils/local-ai.js.map +1 -1
  128. package/dist/utils/update-check.d.ts.map +1 -1
  129. package/dist/utils/update-check.js +0 -28
  130. package/dist/utils/update-check.js.map +1 -1
  131. package/dist/utils/workflow-advisor.d.ts +16 -0
  132. package/dist/utils/workflow-advisor.d.ts.map +1 -0
  133. package/dist/utils/workflow-advisor.js +100 -0
  134. package/dist/utils/workflow-advisor.js.map +1 -0
  135. package/extension/package-lock.json +6044 -2673
  136. package/extension/package.json +117 -108
  137. package/extension/src/extension.ts +653 -631
  138. package/extension/tsconfig.json +21 -21
  139. package/gui/README.md +73 -73
  140. package/gui/e2e/wizard.spec.ts +346 -346
  141. package/gui/eslint.config.js +26 -26
  142. package/gui/index.html +17 -17
  143. package/gui/package-lock.json +3079 -3079
  144. package/gui/package.json +36 -36
  145. package/gui/playwright.config.ts +41 -41
  146. package/gui/public/icons.svg +24 -24
  147. package/gui/src/App.css +1 -1
  148. package/gui/src/App.tsx +3632 -3407
  149. package/gui/src/assets/vite.svg +1 -1
  150. package/gui/src/features/changes/ChangesViewer.tsx +388 -388
  151. package/gui/src/features/knowledge/KnowledgeBase.tsx +84 -84
  152. package/gui/src/features/onboarding/OnboardingWizard.tsx +230 -230
  153. package/gui/src/features/plan/ImplementationPlan.tsx +32 -32
  154. package/gui/src/features/services/ServiceConsole.tsx +250 -250
  155. package/gui/src/features/sessions/SessionHistory.tsx +195 -195
  156. package/gui/src/features/workspace/WorkspaceList.tsx +666 -666
  157. package/gui/src/index.css +152 -152
  158. package/gui/src/main.tsx +94 -94
  159. package/gui/src/types.ts +62 -62
  160. package/gui/tsconfig.app.json +25 -25
  161. package/gui/tsconfig.json +7 -7
  162. package/gui/tsconfig.node.json +24 -24
  163. package/gui/vite.config.ts +12 -12
  164. package/package.json +55 -56
  165. package/resources/workflows/plan-implement-review.md +8 -8
  166. package/resources/workflows/research-verify.md +6 -6
  167. package/resources/workflows/solo-developer.md +3 -3
  168. package/scripts/simulate-workspaces.ts +55 -55
  169. package/skills-lock.json +11 -0
  170. package/src/analyzers/detect-apis.ts +290 -290
  171. package/src/analyzers/detect-deps.ts +315 -315
  172. package/src/analyzers/detect-existing.ts +74 -74
  173. package/src/analyzers/detect-ports.ts +110 -110
  174. package/src/analyzers/index.ts +97 -97
  175. package/src/analyzers/messaging-analyzer.ts +254 -254
  176. package/src/analyzers/readme-summarizer.ts +102 -102
  177. package/src/analyzers/run-analyzer.ts +269 -269
  178. package/src/analyzers/tech-stack.ts +283 -283
  179. package/src/commands/adapter.ts +348 -0
  180. package/src/commands/add-repo.ts +156 -157
  181. package/src/commands/commands.test.ts +156 -155
  182. package/src/commands/commit.ts +131 -131
  183. package/src/commands/config.ts +52 -0
  184. package/src/commands/create.ts +204 -207
  185. package/src/commands/desktop.ts +128 -128
  186. package/src/commands/diff.ts +125 -125
  187. package/src/commands/doctor.ts +370 -357
  188. package/src/commands/handoff.ts +266 -266
  189. package/src/commands/init.ts +134 -134
  190. package/src/commands/list.ts +46 -46
  191. package/src/commands/logs.ts +63 -63
  192. package/src/commands/mcp.ts +94 -92
  193. package/src/commands/open.ts +129 -129
  194. package/src/commands/refresh.ts +137 -147
  195. package/src/commands/remove.ts +98 -98
  196. package/src/commands/start.ts +117 -117
  197. package/src/commands/status.ts +54 -54
  198. package/src/commands/stop.ts +55 -55
  199. package/src/commands/sync.ts +147 -151
  200. package/src/commands/tui.ts +484 -424
  201. package/src/commands/ui.ts +111 -111
  202. package/src/core/adapters/local-storage.ts +66 -0
  203. package/src/core/adapters/obsidian-storage.ts +151 -0
  204. package/src/core/adapters/registry.ts +44 -0
  205. package/src/core/adapters/storage.test.ts +174 -0
  206. package/src/core/adapters/vault-storage.ts +86 -0
  207. package/src/core/config.test.ts +96 -96
  208. package/src/core/config.ts +140 -115
  209. package/src/core/graph.ts +344 -344
  210. package/src/core/plugins/index.ts +17 -0
  211. package/src/core/plugins/loader.ts +36 -0
  212. package/src/core/ports/storage.ts +71 -0
  213. package/src/core/scanner.test.ts +61 -61
  214. package/src/core/scanner.ts +91 -91
  215. package/src/core/storage.ts +37 -0
  216. package/src/core/workspace.ts +487 -380
  217. package/src/core/worktree.ts +120 -120
  218. package/src/generators/antigravity.ts +32 -32
  219. package/src/generators/base.ts +243 -240
  220. package/src/generators/claude.ts +34 -34
  221. package/src/generators/codex.ts +48 -48
  222. package/src/generators/copilot.ts +56 -56
  223. package/src/generators/cursor.ts +44 -44
  224. package/src/generators/diff-context.ts +75 -0
  225. package/src/generators/index.ts +322 -250
  226. package/src/generators/map-generator.test.ts +159 -159
  227. package/src/generators/map-generator.ts +539 -542
  228. package/src/generators/plan-generator.ts +483 -481
  229. package/src/generators/skills-generator.ts +259 -259
  230. package/src/index.ts +539 -426
  231. package/src/mcp/server.ts +294 -294
  232. package/src/orchestration/detect.ts +313 -313
  233. package/src/orchestration/index.ts +7 -7
  234. package/src/orchestration/runner.ts +283 -283
  235. package/src/server.test.ts +618 -555
  236. package/src/server.ts +1314 -1308
  237. package/src/types.ts +415 -408
  238. package/src/utils/detect-ai.test.ts +44 -44
  239. package/src/utils/detect-ai.ts +84 -84
  240. package/src/utils/detect-editors.test.ts +48 -48
  241. package/src/utils/detect-editors.ts +57 -57
  242. package/src/utils/git.test.ts +74 -74
  243. package/src/utils/git.ts +117 -117
  244. package/src/utils/local-ai.test.ts +130 -130
  245. package/src/utils/local-ai.ts +116 -111
  246. package/src/utils/multi-git.ts +313 -313
  247. package/src/utils/prompts.ts +209 -209
  248. package/src/utils/session-finder.ts +483 -483
  249. package/src/utils/system-scanner.test.ts +89 -89
  250. package/src/utils/system-scanner.ts +96 -96
  251. package/src/utils/update-check.ts +286 -309
  252. package/src/utils/workflow-advisor.ts +118 -0
  253. package/src/utils/workflows.test.ts +114 -114
  254. package/src/utils/workflows.ts +178 -178
  255. package/tsconfig.json +19 -19
  256. package/vitest.config.ts +14 -14
  257. package/.github/workflows/release.yml +0 -112
  258. package/dist/commands/pack.d.ts +0 -7
  259. package/dist/commands/pack.d.ts.map +0 -1
  260. package/dist/commands/pack.js +0 -64
  261. package/dist/commands/pack.js.map +0 -1
  262. package/dist/core/packer.d.ts +0 -14
  263. package/dist/core/packer.d.ts.map +0 -1
  264. package/dist/core/packer.js +0 -87
  265. package/dist/core/packer.js.map +0 -1
  266. package/dist/core/packer.test.d.ts +0 -2
  267. package/dist/core/packer.test.d.ts.map +0 -1
  268. package/dist/core/packer.test.js +0 -82
  269. package/dist/core/packer.test.js.map +0 -1
  270. package/dist/gui/assets/index-Ct3qq-X4.js +0 -25
  271. package/dist/gui/assets/index-P_ZrgHXg.css +0 -1
  272. package/src/commands/pack.ts +0 -73
  273. package/src/core/packer.test.ts +0 -99
  274. package/src/core/packer.ts +0 -107
package/README.md CHANGED
@@ -1,337 +1,365 @@
1
- <p align="center">
2
- <h1 align="center">🔗 NexusFlow</h1>
3
- <p align="center">
4
- <strong>Multi-repo workspace manager for AI-assisted development</strong>
5
- </p>
6
- <p align="center">
7
- Group repositories · Generate AI context · Resume LLM sessions · Orchestrate services
8
- </p>
9
- </p>
10
-
11
- ---
12
-
13
- NexusFlow combines multiple Git repositories into a single feature workspace and generates the context files that your AI coding assistant needs to understand all of them at once. It uses **git worktrees** so every repo stays on a clean feature branch without disturbing your main working copy.
14
-
15
- > **New to NexusFlow?** Jump to the [Getting Started Guide](GETTING_STARTED.md) for a hands-on walkthrough.
16
-
17
- ## ✨ Features
18
-
19
- - **Multi-repo workspaces** — group any set of local Git repos under one feature branch using worktrees
20
- - **AI context generation** — automatically writes `CLAUDE.md`, `AGENTS.md`, `.github/copilot-instructions.md`, and `.cursor/rules/nexusflow.mdc`
21
- - **Codebase context packing** — compress an entire multi-repo workspace into a single token-efficient XML file for web-based LLMs using Repomix
22
- - **Smart codebase analysis** — detects tech stacks, ports, API endpoints, dependencies, and existing AI configs across all projects
23
- - **Teamwork Strategy Workflows** — predefine coordination flows and subagent behaviors (e.g. plan-implement-review) and inspect them with local AI coding assistant harnesses
24
- - **Session history & resumption** — browse past conversation transcripts from Antigravity, Claude Code, OpenAI Codex, and GitHub Copilot, then resume where you left off
25
- - **Service orchestration** — start, stop, and tail logs for all services in a workspace with a single command
26
- - **Interactive Web Dashboard** — rich dark-themed GUI for managing workspaces, viewing sessions, and streaming logs
27
- - **CLI-first** — every action available from the terminal via the `nexusflow` command
28
-
29
- ## 📦 Installation
30
-
31
- ### Prerequisites
32
-
33
- | Requirement | Version |
34
- |:---|:---|
35
- | [Node.js](https://nodejs.org) | 18 or later |
36
- | [Git](https://git-scm.com) | 2.20 or later (worktree support) |
37
- | npm | Bundled with Node.js |
38
-
39
- ### Install from npm
40
-
41
- ```bash
42
- npm install -g @mrpatronz/nexusflow
43
- ```
44
-
45
- ### Install from source
46
-
47
- ```bash
48
- git clone https://github.com/antan87/NexusFlow.git
49
- cd NexusFlow
50
-
51
- # Install backend dependencies
52
- npm install
53
-
54
- # Install GUI dependencies
55
- cd gui && npm install && cd ..
56
-
57
- # Build everything
58
- npm run build
59
-
60
- # Link the CLI globally
61
- npm link
62
- ```
63
-
64
- After linking, the `nexusflow` command is available system-wide.
65
-
66
- ## 🚀 Quick Start
67
-
68
- ```bash
69
- # 1 — Initialize config (optional, defaults work out of the box)
70
- nexusflow init
71
-
72
- # 2 — Create a feature workspace
73
- nexusflow create
74
-
75
- # 3 — Or launch the Web Dashboard
76
- nexusflow ui
77
- ```
78
-
79
- The `create` wizard walks you through:
80
-
81
- 1. **Name your feature branch** — e.g. `feature/user-auth`
82
- 2. **Describe what you're building** — plain text or a path to a `.md` file
83
- 3. **Pick your repos** — NexusFlow scans `~/dev` for git repositories
84
- 4. **Choose AI assistant(s)** — auto-detects what's installed
85
- 5. **Done!** — workspace created with git worktrees + AI context files
86
-
87
- ## 📂 What Gets Generated
88
-
89
- ```
90
- ~/dev/workspaces/feature/user-auth/
91
- ├── CLAUDE.md # Context for Claude / Antigravity
92
- ├── AGENTS.md # Context for OpenAI Codex
93
- ├── .github/
94
- │ └── copilot-instructions.md # Context for GitHub Copilot
95
- ├── .cursor/
96
- │ └── rules/nexusflow.mdc # Context for Cursor
97
- ├── nexusflow.json # Feature config (branch, repos, etc.)
98
- ├── nexusflow-overview.md # AI-generated workspace analysis
99
- ├── my-api/ # ← Git worktree on feature branch
100
- └── my-frontend/ # ← Git worktree on feature branch
101
- ```
102
-
103
- Open this folder in your editor → your AI assistant picks up the context → it understands *all* your repos.
104
-
105
- ## 🖥️ Commands
106
-
107
- | Command | Description |
108
- |:---|:---|
109
- | `nexusflow create` | Interactive wizard to create a new feature workspace |
110
- | `nexusflow list` | List all existing workspaces (alias: `ls`) |
111
- | `nexusflow open` | Re-open a workspace in your editor |
112
- | `nexusflow init` | Configure NexusFlow settings |
113
- | `nexusflow pack` | Pack the workspace codebase into a single token-efficient XML file |
114
- | `nexusflow start` | Start all services in a workspace (auto-detected) |
115
- | `nexusflow stop` | Stop all running services |
116
- | `nexusflow status` | Show running/stopped status and PIDs |
117
- | `nexusflow logs` | Tail aggregated logs from all services |
118
- | `nexusflow ui` | Launch the interactive Web Dashboard (port 3000) |
119
- | `nexusflow diff` | View changes across all sub-repositories in the active workspace |
120
- | `nexusflow commit` | Commit and push changes across all modified repositories |
121
- | `nexusflow sync` | Rebase all repositories in the workspace with default base branches |
122
- | `nexusflow refresh`| Regenerate codebase maps, plan, and AI context files without rebasing |
123
- | `nexusflow doctor` | Run health checks and diagnostics to verify workspace integrity |
124
-
125
- ## 🤖 Supported AI Assistants
126
-
127
- NexusFlow auto-detects which assistants are available on your machine and generates the right context files for each:
128
-
129
- | Assistant | Config File | How It's Detected |
130
- |:---|:---|:---|
131
- | **Claude Code / Antigravity** | `CLAUDE.md` | `claude` or `antigravity` in PATH |
132
- | **OpenAI Codex** | `AGENTS.md` | `codex` in PATH |
133
- | **GitHub Copilot** | `.github/copilot-instructions.md` | Always available |
134
- | **Cursor** | `.cursor/rules/nexusflow.mdc` | `cursor` in PATH |
135
-
136
- ## 🕐 Session History & Resumption
137
-
138
- NexusFlow can discover and display your past AI coding sessions across all supported assistants. This lets you:
139
-
140
- - **Browse** conversation transcripts from previous sessions
141
- - **Search** through your interaction history
142
- - **Resume** a session by copying the resume command to your clipboard
143
-
144
- Session data is read directly from each assistant's local storage:
145
-
146
- | Assistant | Session Location |
147
- |:---|:---|
148
- | Antigravity | `~/.gemini/antigravity-cli/brain/` |
149
- | Claude Code | `~/.claude/projects/` |
150
- | OpenAI Codex | `~/.codex/sessions/` |
151
- | GitHub Copilot | `~/.copilot/` |
152
-
153
- Access sessions via the Web Dashboard's **Sessions** tab or through the API:
154
-
155
- ```
156
- GET /api/workspace/:id/sessions
157
- GET /api/session/:assistant/:sessionId/transcript
158
- ```
159
-
160
- ## 👥 Teamwork Strategy Workflows
161
-
162
- NexusFlow allows you to predefine orchestration workflows and cooperation rules that govern how multiple AI subagents coordinate when solving complex, multi-repo software engineering tasks.
163
-
164
- You can select a strategy workflow when creating a workspace (or define custom ones). Built-in templates include:
165
- - **Plan-Implement-Review** — A structured, multi-agent flow where an Orchestrator coordinates planning, implementation, review, and documentation.
166
- - **Research-Verify** — A fast iteration strategy centered on research, drafting code, and immediately running verification test suites.
167
- - **Solo Developer** — A simplified, lightweight direct-action workflow for minor tweaks and linear tasks.
168
-
169
- ### Custom Strategies & AI Inspection
170
-
171
- You can create, edit, or delete custom strategies directly via the Web Dashboard's **Team Strategies** tab. Strategies are written in clean Markdown guidelines and stored in:
172
- `~/.nexusflow/workflows/`
173
-
174
- The dashboard integrates an **AI Strategy Analysis** inspector:
175
- 1. Select an AI assistant harness installed on your machine (e.g. *Claude Code*, *Antigravity*).
176
- 2. (Optional) Provide a comment or specific evaluation focus (e.g. *"Ensure subagent roles are distinct"*).
177
- 3. Click **Inspect Strategy** to have the AI analyze the strategy rules, identify ambiguities/contradictions, rate its orchestration effectiveness, and generate an optimized rewritten guideline.
178
-
179
- ## 🌐 Web Dashboard
180
-
181
- Launch with `nexusflow ui` to get a full-featured dark-themed GUI:
182
-
183
- - **Workspaces tab** — create, browse, and manage feature workspaces
184
- - **Sessions tab** view past AI conversation transcripts and resume sessions
185
- - **Logs panel** — real-time aggregated service log output
186
- - **Config panel** — edit NexusFlow settings from the browser
187
-
188
- The dashboard runs a local [Hono](https://hono.dev) server on port 3000 and serves a [React](https://react.dev) + [Vite](https://vite.dev) frontend.
189
-
190
- ## ⚙️ Configuration
191
-
192
- NexusFlow stores its config at `~/.nexusflow/config.json`:
193
-
194
- ```json
195
- {
196
- "version": "0.1.0",
197
- "devDir": "~/dev",
198
- "workspacesDir": "~/dev/workspaces",
199
- "scanDepth": 2,
200
- "defaultAssistant": null
201
- }
202
- ```
203
-
204
- | Key | Default | Description |
205
- |:---|:---|:---|
206
- | `devDir` | `~/dev` | Root directory to scan for git repos |
207
- | `workspacesDir` | `~/dev/workspaces` | Where feature workspaces are created |
208
- | `scanDepth` | `2` | How many levels deep to scan for repos |
209
- | `defaultAssistant` | `null` | Pre-select an assistant during workspace creation |
210
-
211
- Run `nexusflow init` to interactively set these values.
212
-
213
- ## 🏗️ Architecture
214
-
215
- ```
216
- NexusFlow/
217
- ├── src/
218
- │ ├── index.ts # CLI entry point (Commander.js)
219
- │ ├── server.ts # Hono API server (REST endpoints)
220
- │ ├── types.ts # Shared TypeScript interfaces
221
- │ ├── commands/ # CLI command handlers
222
- │ │ ├── create.ts # nexusflow create
223
- │ │ ├── init.ts # nexusflow init
224
- │ │ ├── list.ts # nexusflow list
225
- │ │ ├── open.ts # nexusflow open
226
- │ │ ├── start.ts # nexusflow start
227
- │ │ ├── stop.ts # nexusflow stop
228
- │ │ ├── status.ts # nexusflow status
229
- │ │ ├── logs.ts # nexusflow logs
230
- │ │ └── ui.ts # nexusflow ui
231
- │ ├── core/ # Core workspace logic
232
- │ │ ├── config.ts # Config management (~/.nexusflow/)
233
- │ │ ├── scanner.ts # Git repo scanner
234
- │ │ ├── worktree.ts # Git worktree operations
235
- │ │ └── workspace.ts # Workspace CRUD
236
- │ ├── analyzers/ # Codebase analysis
237
- │ │ ├── tech-stack.ts # Language/framework detection
238
- │ │ ├── detect-ports.ts # Port & server detection
239
- │ │ ├── detect-apis.ts # API endpoint scanning
240
- │ │ ├── detect-deps.ts # Dependency analysis
241
- │ │ ├── detect-existing.ts# Existing AI config detection
242
- │ │ └── readme-summarizer.ts# README content extraction
243
- │ ├── generators/ # AI context file generators
244
- │ │ ├── base.ts # Shared context builder
245
- │ │ ├── claude.ts # CLAUDE.md generator
246
- ├── codex.ts # AGENTS.md generator
247
- ├── copilot.ts # copilot-instructions.md generator
248
- │ └── cursor.ts # nexusflow.mdc generator
249
- │ ├── orchestration/ # Service start/stop/log management
250
- └── utils/ # Helper utilities
251
- ├── git.ts # Git operations
252
- ├── detect-ai.ts # AI assistant detection
253
- ├── detect-editors.ts # Editor detection
254
- ├── session-finder.ts # AI session history discovery
255
- └── prompts.ts # Interactive prompts
256
- ├── gui/ # React + Vite Web Dashboard
257
- └── src/
258
- └── App.tsx # Main dashboard component
259
- ├── package.json
260
- └── tsconfig.json
261
- ```
262
-
263
- ## 🤝 Contributing
264
-
265
- Contributions are welcome! Here's how to get set up:
266
-
267
- ### Development Setup
268
-
269
- ```bash
270
- # Clone the repo
271
- git clone https://github.com/antan87/NexusFlow.git
272
- cd NexusFlow
273
-
274
- # Install all dependencies
275
- npm install
276
- cd gui && npm install && cd ..
277
-
278
- # Start the TypeScript compiler in watch mode
279
- npm run dev
280
-
281
- # In another terminal, start the GUI dev server
282
- cd gui && npm run dev
283
- ```
284
-
285
- ### Build
286
-
287
- ```bash
288
- # Full build (TypeScript + GUI)
289
- npm run build
290
-
291
- # Clean build artifacts
292
- npm run clean
293
- ```
294
-
295
- ### Test
296
-
297
- ```bash
298
- # Run tests
299
- npm test
300
-
301
- # Watch mode
302
- npm run test:watch
303
- ```
304
-
305
- ### Code Style
306
-
307
- - **TypeScript** — strict mode, ES modules
308
- - **Imports** — use `.js` extensions for local imports (`import { x } from './config.js'`)
309
- - **Node built-ins** use the `node:` prefix (`import path from 'node:path'`)
310
- - **JSDoc** add doc comments to all exported functions
311
- - **Error handling** — wrap external calls (git, filesystem) in try/catch
312
-
313
- ### Adding a New AI Assistant
314
-
315
- 1. Add the assistant identifier to the `AIAssistant` type in [types.ts](src/types.ts)
316
- 2. Add detection logic in [detect-ai.ts](src/utils/detect-ai.ts)
317
- 3. Create a new generator in `src/generators/` (follow the pattern in [claude.ts](src/generators/claude.ts))
318
- 4. Register it in the [generator index](src/generators/index.ts)
319
- 5. Add session discovery logic in [session-finder.ts](src/utils/session-finder.ts)
320
-
321
- ### Adding a New Analyzer
322
-
323
- 1. Create a new file in `src/analyzers/` following the existing patterns
324
- 2. Export the analyzer function and register it in [analyzers/index.ts](src/analyzers/index.ts)
325
- 3. The analyzer output is fed into the context generators and the `WORKSPACE.md` file
326
-
327
- ### Pull Request Guidelines
328
-
329
- - Fork the repo and create a feature branch
330
- - Write clear commit messages
331
- - Add tests for new functionality
332
- - Make sure `npm run build` passes before submitting
333
- - Update documentation if you change user-facing behavior
334
-
335
- ## 📄 License
336
-
1
+ <p align="center">
2
+ <h1 align="center">🔗 NexusFlow</h1>
3
+ <p align="center">
4
+ <strong>Multi-repo workspace manager for AI-assisted development</strong>
5
+ </p>
6
+ <p align="center">
7
+ Group repositories · Generate AI context · Resume LLM sessions · Orchestrate services
8
+ </p>
9
+ </p>
10
+
11
+ ---
12
+
13
+ NexusFlow combines multiple Git repositories into a single feature workspace and generates the context files that your AI coding assistant needs to understand all of them at once. It uses **git worktrees** so every repo stays on a clean feature branch without disturbing your main working copy.
14
+
15
+ > **New to NexusFlow?** Jump to the [Getting Started Guide](GETTING_STARTED.md) for a hands-on walkthrough.
16
+
17
+ ## ✨ Features
18
+
19
+ - **Multi-repo workspaces** — group any set of local Git repos under one feature branch using worktrees
20
+ - **AI context generation** — automatically writes `CLAUDE.md`, `AGENTS.md`, `.github/copilot-instructions.md`, and `.cursor/rules/nexusflow.mdc`
21
+ - **Codebase context packing** — compress an entire multi-repo workspace into a single token-efficient XML file for web-based LLMs using Repomix
22
+ - **Smart codebase analysis** — detects tech stacks, ports, API endpoints, dependencies, and existing AI configs across all projects
23
+ - **Teamwork Strategy Workflows** — predefine coordination flows and subagent behaviors (e.g. plan-implement-review) and inspect them with local AI coding assistant harnesses
24
+ - **Session history & resumption** — browse past conversation transcripts from Antigravity, Claude Code, OpenAI Codex, and GitHub Copilot, then resume where you left off
25
+ - **Service orchestration** — start, stop, and tail logs for all services in a workspace with a single command
26
+ - **Interactive Web Dashboard** — rich dark-themed GUI for managing workspaces, viewing sessions, and streaming logs
27
+ - **CLI-first** — every action available from the terminal via the `nexusflow` command
28
+
29
+ ## 📦 Installation
30
+
31
+ ### Prerequisites
32
+
33
+ | Requirement | Version |
34
+ |:---|:---|
35
+ | [Node.js](https://nodejs.org) | 18 or later |
36
+ | [Git](https://git-scm.com) | 2.20 or later (worktree support) |
37
+ | npm | Bundled with Node.js |
38
+
39
+ ### Install from npm
40
+
41
+ ```bash
42
+ npm install -g @mrpatronz/nexusflow
43
+ ```
44
+
45
+ ### Install from source
46
+
47
+ ```bash
48
+ git clone https://github.com/antan87/NexusFlow.git
49
+ cd NexusFlow
50
+
51
+ # Install backend dependencies
52
+ npm install
53
+
54
+ # Install GUI dependencies
55
+ cd gui && npm install && cd ..
56
+
57
+ # Build everything
58
+ npm run build
59
+
60
+ # Link the CLI globally
61
+ npm link
62
+ ```
63
+
64
+ After linking, the `nexusflow` command is available system-wide.
65
+
66
+ ## 🚀 Quick Start
67
+
68
+ ```bash
69
+ # 1 — Initialize config (optional, defaults work out of the box)
70
+ nexusflow init
71
+
72
+ # 2 — Create a feature workspace
73
+ nexusflow create
74
+
75
+ # 3 — Or launch the Web Dashboard
76
+ nexusflow ui
77
+ ```
78
+
79
+ The `create` wizard walks you through:
80
+
81
+ 1. **Name your feature branch** — e.g. `feature/user-auth`
82
+ 2. **Describe what you're building** — plain text or a path to a `.md` file
83
+ 3. **Pick your repos** — NexusFlow scans `~/dev` for git repositories
84
+ 4. **Choose AI assistant(s)** — auto-detects what's installed
85
+ 5. **Done!** — workspace created with git worktrees + AI context files
86
+
87
+ ## 📂 What Gets Generated
88
+
89
+ ```
90
+ ~/dev/workspaces/feature/user-auth/
91
+ ├── CLAUDE.md # Context for Claude / Antigravity
92
+ ├── AGENTS.md # Context for OpenAI Codex
93
+ ├── .github/
94
+ │ └── copilot-instructions.md # Context for GitHub Copilot
95
+ ├── .cursor/
96
+ │ └── rules/nexusflow.mdc # Context for Cursor
97
+ ├── nexusflow.json # Feature config (branch, repos, etc.)
98
+ ├── nexusflow-overview.md # AI-generated workspace analysis
99
+ ├── my-api/ # ← Git worktree on feature branch
100
+ └── my-frontend/ # ← Git worktree on feature branch
101
+ ```
102
+
103
+ Open this folder in your editor → your AI assistant picks up the context → it understands *all* your repos.
104
+
105
+ ## 🖥️ Commands
106
+
107
+ | Command | Description |
108
+ |:---|:---|
109
+ | `nexusflow create` | Interactive wizard to create a new feature workspace |
110
+ | `nexusflow list` | List all existing workspaces (alias: `ls`) |
111
+ | `nexusflow open` | Re-open a workspace in your editor |
112
+ | `nexusflow init` | Configure NexusFlow settings |
113
+ | `nexusflow adapter` | Manage storage adapters list, switch, configure, or initialize custom plugins |
114
+ | `nexusflow pack` | Pack the workspace codebase into a single token-efficient XML file |
115
+ | `nexusflow start` | Start all services in a workspace (auto-detected) |
116
+ | `nexusflow stop` | Stop all running services |
117
+ | `nexusflow status` | Show running/stopped status and PIDs |
118
+ | `nexusflow logs` | Tail aggregated logs from all services |
119
+ | `nexusflow ui` | Launch the interactive Web Dashboard (port 3000) |
120
+ | `nexusflow diff` | View changes across all sub-repositories in the active workspace |
121
+ | `nexusflow commit` | Commit and push changes across all modified repositories |
122
+ | `nexusflow sync` | Rebase all repositories in the workspace with default base branches |
123
+ | `nexusflow refresh`| Regenerate codebase maps, plan, and AI context files without rebasing |
124
+ | `nexusflow doctor` | Run health checks and diagnostics to verify workspace integrity |
125
+
126
+ ## 🤖 Supported AI Assistants
127
+
128
+ NexusFlow auto-detects which assistants are available on your machine and generates the right context files for each:
129
+
130
+ | Assistant | Config File | How It's Detected |
131
+ |:---|:---|:---|
132
+ | **Claude Code / Antigravity** | `CLAUDE.md` | `claude` or `antigravity` in PATH |
133
+ | **OpenAI Codex** | `AGENTS.md` | `codex` in PATH |
134
+ | **GitHub Copilot** | `.github/copilot-instructions.md` | Always available |
135
+ | **Cursor** | `.cursor/rules/nexusflow.mdc` | `cursor` in PATH |
136
+
137
+ ## 🕐 Session History & Resumption
138
+
139
+ NexusFlow can discover and display your past AI coding sessions across all supported assistants. This lets you:
140
+
141
+ - **Browse** conversation transcripts from previous sessions
142
+ - **Search** through your interaction history
143
+ - **Resume** a session by copying the resume command to your clipboard
144
+
145
+ Session data is read directly from each assistant's local storage:
146
+
147
+ | Assistant | Session Location |
148
+ |:---|:---|
149
+ | Antigravity | `~/.gemini/antigravity-cli/brain/` |
150
+ | Claude Code | `~/.claude/projects/` |
151
+ | OpenAI Codex | `~/.codex/sessions/` |
152
+ | GitHub Copilot | `~/.copilot/` |
153
+
154
+ Access sessions via the Web Dashboard's **Sessions** tab or through the API:
155
+
156
+ ```
157
+ GET /api/workspace/:id/sessions
158
+ GET /api/session/:assistant/:sessionId/transcript
159
+ ```
160
+
161
+ ## 🗄️ Pluggable Storage & Vault Adapters
162
+
163
+ NexusFlow supports multiple storage backends to control where workspace context maps, plans, and persistent AI knowledge files are stored. This allows keeping your Git repository workspaces completely clean from AI file clutter.
164
+
165
+ Available storage providers:
166
+ - **Local (`local`)** — Stores files directly in the workspace directory (default).
167
+ - **Central Vault (`central-vault`)** — Stores files in a centralized folder on your machine at `~/.nexusflow/vault/`.
168
+ - **Obsidian Vault (`obsidian`)** — Stores files in a designated folder inside your Obsidian Vault, wrapped in a `nexusflow/` subdirectory (e.g. `vault/nexusflow/workspaces/<featureId>`). Auto-wraps files with YAML frontmatter metadata and tags for easy Obsidian indexing.
169
+
170
+ ### CLI Adapter Management
171
+
172
+ Configure storage adapters from the command line:
173
+
174
+ ```bash
175
+ # List all registered storage adapters and the active provider
176
+ nexusflow adapter list
177
+
178
+ # View configurations and fields for a specific adapter
179
+ nexusflow adapter info obsidian
180
+
181
+ # Switch to a different adapter (e.g. obsidian) and configure its settings
182
+ nexusflow adapter use obsidian
183
+
184
+ # Scaffolds a template for creating a new custom storage adapter plugin
185
+ nexusflow adapter init my-custom-plugin
186
+ ```
187
+
188
+ ## 👥 Teamwork Strategy Workflows
189
+
190
+ NexusFlow allows you to predefine orchestration workflows and cooperation rules that govern how multiple AI subagents coordinate when solving complex, multi-repo software engineering tasks.
191
+
192
+ You can select a strategy workflow when creating a workspace (or define custom ones). Built-in templates include:
193
+ - **Plan-Implement-Review** — A structured, multi-agent flow where an Orchestrator coordinates planning, implementation, review, and documentation.
194
+ - **Research-Verify** — A fast iteration strategy centered on research, drafting code, and immediately running verification test suites.
195
+ - **Solo Developer** — A simplified, lightweight direct-action workflow for minor tweaks and linear tasks.
196
+
197
+ ### Custom Strategies & AI Inspection
198
+
199
+ You can create, edit, or delete custom strategies directly via the Web Dashboard's **Team Strategies** tab. Strategies are written in clean Markdown guidelines and stored in:
200
+ `~/.nexusflow/workflows/`
201
+
202
+ The dashboard integrates an **AI Strategy Analysis** inspector:
203
+ 1. Select an AI assistant harness installed on your machine (e.g. *Claude Code*, *Antigravity*).
204
+ 2. (Optional) Provide a comment or specific evaluation focus (e.g. *"Ensure subagent roles are distinct"*).
205
+ 3. Click **Inspect Strategy** to have the AI analyze the strategy rules, identify ambiguities/contradictions, rate its orchestration effectiveness, and generate an optimized rewritten guideline.
206
+
207
+ ## 🌐 Web Dashboard
208
+
209
+ Launch with `nexusflow ui` to get a full-featured dark-themed GUI:
210
+
211
+ - **Workspaces tab** create, browse, and manage feature workspaces
212
+ - **Sessions tab** — view past AI conversation transcripts and resume sessions
213
+ - **Logs panel** — real-time aggregated service log output
214
+ - **Config panel** — edit NexusFlow settings from the browser
215
+
216
+ The dashboard runs a local [Hono](https://hono.dev) server on port 3000 and serves a [React](https://react.dev) + [Vite](https://vite.dev) frontend.
217
+
218
+ ## ⚙️ Configuration
219
+
220
+ NexusFlow stores its config at `~/.nexusflow/config.json`:
221
+
222
+ ```json
223
+ {
224
+ "version": "0.1.0",
225
+ "devDir": "~/dev",
226
+ "workspacesDir": "~/dev/workspaces",
227
+ "scanDepth": 2,
228
+ "defaultAssistant": null
229
+ }
230
+ ```
231
+
232
+ | Key | Default | Description |
233
+ |:---|:---|:---|
234
+ | `devDir` | `~/dev` | Root directory to scan for git repos |
235
+ | `workspacesDir` | `~/dev/workspaces` | Where feature workspaces are created |
236
+ | `scanDepth` | `2` | How many levels deep to scan for repos |
237
+ | `defaultAssistant` | `null` | Pre-select an assistant during workspace creation |
238
+
239
+ Run `nexusflow init` to interactively set these values.
240
+
241
+ ## 🏗️ Architecture
242
+
243
+ ```
244
+ NexusFlow/
245
+ ├── src/
246
+ │ ├── index.ts # CLI entry point (Commander.js)
247
+ │ ├── server.ts # Hono API server (REST endpoints)
248
+ ├── types.ts # Shared TypeScript interfaces
249
+ │ ├── commands/ # CLI command handlers
250
+ │ ├── create.ts # nexusflow create
251
+ ├── init.ts # nexusflow init
252
+ ├── list.ts # nexusflow list
253
+ ├── open.ts # nexusflow open
254
+ ├── start.ts # nexusflow start
255
+ │ ├── stop.ts # nexusflow stop
256
+ │ │ ├── status.ts # nexusflow status
257
+ │ ├── logs.ts # nexusflow logs
258
+ └── ui.ts # nexusflow ui
259
+ ├── core/ # Core workspace logic
260
+ │ │ ├── config.ts # Config management (~/.nexusflow/)
261
+ │ │ ├── scanner.ts # Git repo scanner
262
+ │ │ ├── worktree.ts # Git worktree operations
263
+ │ │ └── workspace.ts # Workspace CRUD
264
+ │ ├── analyzers/ # Codebase analysis
265
+ │ │ ├── tech-stack.ts # Language/framework detection
266
+ │ │ ├── detect-ports.ts # Port & server detection
267
+ │ │ ├── detect-apis.ts # API endpoint scanning
268
+ │ │ ├── detect-deps.ts # Dependency analysis
269
+ │ │ ├── detect-existing.ts# Existing AI config detection
270
+ │ │ └── readme-summarizer.ts# README content extraction
271
+ │ ├── generators/ # AI context file generators
272
+ │ │ ├── base.ts # Shared context builder
273
+ │ │ ├── claude.ts # CLAUDE.md generator
274
+ │ │ ├── codex.ts # AGENTS.md generator
275
+ │ │ ├── copilot.ts # copilot-instructions.md generator
276
+ │ │ └── cursor.ts # nexusflow.mdc generator
277
+ │ ├── orchestration/ # Service start/stop/log management
278
+ │ └── utils/ # Helper utilities
279
+ │ ├── git.ts # Git operations
280
+ │ ├── detect-ai.ts # AI assistant detection
281
+ │ ├── detect-editors.ts # Editor detection
282
+ │ ├── session-finder.ts # AI session history discovery
283
+ │ └── prompts.ts # Interactive prompts
284
+ ├── gui/ # React + Vite Web Dashboard
285
+ │ └── src/
286
+ │ └── App.tsx # Main dashboard component
287
+ ├── package.json
288
+ └── tsconfig.json
289
+ ```
290
+
291
+ ## 🤝 Contributing
292
+
293
+ Contributions are welcome! Here's how to get set up:
294
+
295
+ ### Development Setup
296
+
297
+ ```bash
298
+ # Clone the repo
299
+ git clone https://github.com/antan87/NexusFlow.git
300
+ cd NexusFlow
301
+
302
+ # Install all dependencies
303
+ npm install
304
+ cd gui && npm install && cd ..
305
+
306
+ # Start the TypeScript compiler in watch mode
307
+ npm run dev
308
+
309
+ # In another terminal, start the GUI dev server
310
+ cd gui && npm run dev
311
+ ```
312
+
313
+ ### Build
314
+
315
+ ```bash
316
+ # Full build (TypeScript + GUI)
317
+ npm run build
318
+
319
+ # Clean build artifacts
320
+ npm run clean
321
+ ```
322
+
323
+ ### Test
324
+
325
+ ```bash
326
+ # Run tests
327
+ npm test
328
+
329
+ # Watch mode
330
+ npm run test:watch
331
+ ```
332
+
333
+ ### Code Style
334
+
335
+ - **TypeScript** — strict mode, ES modules
336
+ - **Imports** — use `.js` extensions for local imports (`import { x } from './config.js'`)
337
+ - **Node built-ins** — use the `node:` prefix (`import path from 'node:path'`)
338
+ - **JSDoc** — add doc comments to all exported functions
339
+ - **Error handling** — wrap external calls (git, filesystem) in try/catch
340
+
341
+ ### Adding a New AI Assistant
342
+
343
+ 1. Add the assistant identifier to the `AIAssistant` type in [types.ts](src/types.ts)
344
+ 2. Add detection logic in [detect-ai.ts](src/utils/detect-ai.ts)
345
+ 3. Create a new generator in `src/generators/` (follow the pattern in [claude.ts](src/generators/claude.ts))
346
+ 4. Register it in the [generator index](src/generators/index.ts)
347
+ 5. Add session discovery logic in [session-finder.ts](src/utils/session-finder.ts)
348
+
349
+ ### Adding a New Analyzer
350
+
351
+ 1. Create a new file in `src/analyzers/` following the existing patterns
352
+ 2. Export the analyzer function and register it in [analyzers/index.ts](src/analyzers/index.ts)
353
+ 3. The analyzer output is fed into the context generators and the `WORKSPACE.md` file
354
+
355
+ ### Pull Request Guidelines
356
+
357
+ - Fork the repo and create a feature branch
358
+ - Write clear commit messages
359
+ - Add tests for new functionality
360
+ - Make sure `npm run build` passes before submitting
361
+ - Update documentation if you change user-facing behavior
362
+
363
+ ## 📄 License
364
+
337
365
  MIT — see [LICENSE](LICENSE) for details.