devglide 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +338 -0
  3. package/bin/claude-md-template.js +94 -0
  4. package/bin/devglide.js +387 -0
  5. package/package.json +85 -0
  6. package/pnpm-workspace.yaml +3 -0
  7. package/src/apps/coder/.turbo/turbo-lint.log +5 -0
  8. package/src/apps/coder/package.json +16 -0
  9. package/src/apps/coder/public/favicon.svg +7 -0
  10. package/src/apps/coder/public/page.css +275 -0
  11. package/src/apps/coder/public/page.js +528 -0
  12. package/src/apps/coder/server.js +3 -0
  13. package/src/apps/documentation/public/page.css +597 -0
  14. package/src/apps/documentation/public/page.js +609 -0
  15. package/src/apps/kanban/.turbo/turbo-lint.log +97 -0
  16. package/src/apps/kanban/.turbo/turbo-typecheck.log +5 -0
  17. package/src/apps/kanban/package.json +32 -0
  18. package/src/apps/kanban/public/favicon.svg +7 -0
  19. package/src/apps/kanban/public/page.css +1010 -0
  20. package/src/apps/kanban/public/page.js +1730 -0
  21. package/src/apps/kanban/public/vendor/marked.min.js +6 -0
  22. package/src/apps/kanban/public/vendor/sortable.min.js +2 -0
  23. package/src/apps/kanban/src/db.ts +319 -0
  24. package/src/apps/kanban/src/index.ts +14 -0
  25. package/src/apps/kanban/src/mcp-helpers.test.ts +88 -0
  26. package/src/apps/kanban/src/mcp-helpers.ts +60 -0
  27. package/src/apps/kanban/src/mcp.ts +59 -0
  28. package/src/apps/kanban/src/routes/attachments.ts +161 -0
  29. package/src/apps/kanban/src/routes/features.ts +233 -0
  30. package/src/apps/kanban/src/routes/issues.ts +373 -0
  31. package/src/apps/kanban/src/tools/feature-tools.ts +164 -0
  32. package/src/apps/kanban/src/tools/item-tools.ts +307 -0
  33. package/src/apps/kanban/src/tools/versioned-entry-tools.ts +72 -0
  34. package/src/apps/kanban/tsconfig.check.json +9 -0
  35. package/src/apps/kanban/tsconfig.json +9 -0
  36. package/src/apps/keymap/.turbo/turbo-lint.log +5 -0
  37. package/src/apps/keymap/package.json +16 -0
  38. package/src/apps/keymap/public/page.css +275 -0
  39. package/src/apps/keymap/public/page.js +294 -0
  40. package/src/apps/keymap/server.js +25 -0
  41. package/src/apps/log/.turbo/turbo-build.log +5 -0
  42. package/src/apps/log/.turbo/turbo-lint.log +45 -0
  43. package/src/apps/log/.turbo/turbo-typecheck.log +5 -0
  44. package/src/apps/log/node_modules/.bin/tsc +21 -0
  45. package/src/apps/log/node_modules/.bin/tsserver +21 -0
  46. package/src/apps/log/node_modules/.bin/tsx +21 -0
  47. package/src/apps/log/package.json +36 -0
  48. package/src/apps/log/public/console-sniffer.js +221 -0
  49. package/src/apps/log/public/favicon.svg +7 -0
  50. package/src/apps/log/public/page.css +322 -0
  51. package/src/apps/log/public/page.js +463 -0
  52. package/src/apps/log/src/index.ts +9 -0
  53. package/src/apps/log/src/mcp.ts +122 -0
  54. package/src/apps/log/src/routes/log.ts +333 -0
  55. package/src/apps/log/src/routes/status.ts +25 -0
  56. package/src/apps/log/src/server-sniffer.ts +118 -0
  57. package/src/apps/log/src/services/file-patterns.ts +39 -0
  58. package/src/apps/log/src/services/file-tailer.ts +228 -0
  59. package/src/apps/log/src/services/line-parser.ts +94 -0
  60. package/src/apps/log/src/services/log-writer.ts +39 -0
  61. package/src/apps/log/tsconfig.json +8 -0
  62. package/src/apps/prompts/.turbo/turbo-build.log +5 -0
  63. package/src/apps/prompts/.turbo/turbo-lint.log +24 -0
  64. package/src/apps/prompts/.turbo/turbo-typecheck.log +5 -0
  65. package/src/apps/prompts/mcp.ts +175 -0
  66. package/src/apps/prompts/node_modules/.bin/tsc +21 -0
  67. package/src/apps/prompts/node_modules/.bin/tsserver +21 -0
  68. package/src/apps/prompts/node_modules/.bin/tsx +21 -0
  69. package/src/apps/prompts/package.json +25 -0
  70. package/src/apps/prompts/public/page.css +315 -0
  71. package/src/apps/prompts/public/page.js +541 -0
  72. package/src/apps/prompts/services/prompt-store.ts +212 -0
  73. package/src/apps/prompts/src/index.ts +9 -0
  74. package/src/apps/prompts/tsconfig.json +8 -0
  75. package/src/apps/prompts/types.ts +27 -0
  76. package/src/apps/shell/.turbo/turbo-build.log +5 -0
  77. package/src/apps/shell/.turbo/turbo-lint.log +34 -0
  78. package/src/apps/shell/.turbo/turbo-typecheck.log +5 -0
  79. package/src/apps/shell/package.json +35 -0
  80. package/src/apps/shell/public/favicon.svg +7 -0
  81. package/src/apps/shell/public/page.css +407 -0
  82. package/src/apps/shell/public/page.js +1577 -0
  83. package/src/apps/shell/src/index.ts +150 -0
  84. package/src/apps/shell/src/mcp.ts +398 -0
  85. package/src/apps/shell/src/shell-types.ts +41 -0
  86. package/src/apps/shell/tsconfig.json +8 -0
  87. package/src/apps/test/.turbo/turbo-build.log +5 -0
  88. package/src/apps/test/.turbo/turbo-lint.log +27 -0
  89. package/src/apps/test/.turbo/turbo-typecheck.log +5 -0
  90. package/src/apps/test/node_modules/.bin/tsc +21 -0
  91. package/src/apps/test/node_modules/.bin/tsserver +21 -0
  92. package/src/apps/test/node_modules/.bin/tsx +21 -0
  93. package/src/apps/test/node_modules/.bin/uuid +21 -0
  94. package/src/apps/test/package.json +35 -0
  95. package/src/apps/test/public/favicon.svg +7 -0
  96. package/src/apps/test/public/page.css +499 -0
  97. package/src/apps/test/public/page.js +417 -0
  98. package/src/apps/test/public/scenario-runner.js +450 -0
  99. package/src/apps/test/src/index.ts +9 -0
  100. package/src/apps/test/src/mcp.ts +192 -0
  101. package/src/apps/test/src/routes/trigger.ts +285 -0
  102. package/src/apps/test/src/services/scenario-broadcaster.ts +60 -0
  103. package/src/apps/test/src/services/scenario-manager.ts +361 -0
  104. package/src/apps/test/src/services/scenario-store.ts +145 -0
  105. package/src/apps/test/tsconfig.json +8 -0
  106. package/src/apps/vocabulary/.turbo/turbo-build.log +5 -0
  107. package/src/apps/vocabulary/.turbo/turbo-lint.log +25 -0
  108. package/src/apps/vocabulary/.turbo/turbo-typecheck.log +5 -0
  109. package/src/apps/vocabulary/mcp.ts +173 -0
  110. package/src/apps/vocabulary/node_modules/.bin/tsc +21 -0
  111. package/src/apps/vocabulary/node_modules/.bin/tsserver +21 -0
  112. package/src/apps/vocabulary/node_modules/.bin/tsx +21 -0
  113. package/src/apps/vocabulary/package.json +25 -0
  114. package/src/apps/vocabulary/public/page.css +247 -0
  115. package/src/apps/vocabulary/public/page.js +444 -0
  116. package/src/apps/vocabulary/services/vocabulary-store.ts +179 -0
  117. package/src/apps/vocabulary/src/index.ts +10 -0
  118. package/src/apps/vocabulary/tsconfig.json +8 -0
  119. package/src/apps/vocabulary/types.ts +22 -0
  120. package/src/apps/voice/.turbo/turbo-build.log +5 -0
  121. package/src/apps/voice/.turbo/turbo-lint.log +43 -0
  122. package/src/apps/voice/.turbo/turbo-typecheck.log +5 -0
  123. package/src/apps/voice/node_modules/.bin/openai +21 -0
  124. package/src/apps/voice/node_modules/.bin/tsc +21 -0
  125. package/src/apps/voice/node_modules/.bin/tsserver +21 -0
  126. package/src/apps/voice/node_modules/.bin/tsx +21 -0
  127. package/src/apps/voice/package.json +35 -0
  128. package/src/apps/voice/public/favicon.svg +7 -0
  129. package/src/apps/voice/public/page.css +388 -0
  130. package/src/apps/voice/public/page.js +718 -0
  131. package/src/apps/voice/src/index.ts +10 -0
  132. package/src/apps/voice/src/mcp.ts +70 -0
  133. package/src/apps/voice/src/providers/index.ts +85 -0
  134. package/src/apps/voice/src/providers/openai-compatible.ts +94 -0
  135. package/src/apps/voice/src/providers/types.ts +27 -0
  136. package/src/apps/voice/src/routes/config.ts +118 -0
  137. package/src/apps/voice/src/routes/transcribe.ts +90 -0
  138. package/src/apps/voice/src/services/config-store.ts +129 -0
  139. package/src/apps/voice/src/services/stats.ts +108 -0
  140. package/src/apps/voice/src/transcribe.ts +11 -0
  141. package/src/apps/voice/src/utils/mime.ts +16 -0
  142. package/src/apps/voice/tsconfig.json +8 -0
  143. package/src/apps/workflow/.turbo/turbo-build.log +5 -0
  144. package/src/apps/workflow/.turbo/turbo-lint.log +96 -0
  145. package/src/apps/workflow/.turbo/turbo-typecheck.log +5 -0
  146. package/src/apps/workflow/engine/executors/decision-executor.ts +87 -0
  147. package/src/apps/workflow/engine/executors/file-executor.ts +90 -0
  148. package/src/apps/workflow/engine/executors/git-executor.ts +137 -0
  149. package/src/apps/workflow/engine/executors/http-executor.ts +65 -0
  150. package/src/apps/workflow/engine/executors/index.ts +28 -0
  151. package/src/apps/workflow/engine/executors/kanban-executor.ts +154 -0
  152. package/src/apps/workflow/engine/executors/llm-executor.ts +46 -0
  153. package/src/apps/workflow/engine/executors/log-executor.ts +62 -0
  154. package/src/apps/workflow/engine/executors/loop-executor.ts +14 -0
  155. package/src/apps/workflow/engine/executors/shell-executor.ts +107 -0
  156. package/src/apps/workflow/engine/executors/sub-workflow-executor.ts +61 -0
  157. package/src/apps/workflow/engine/executors/test-executor.ts +73 -0
  158. package/src/apps/workflow/engine/executors/trigger-executor.ts +39 -0
  159. package/src/apps/workflow/engine/expression-evaluator.ts +117 -0
  160. package/src/apps/workflow/engine/graph-runner.ts +438 -0
  161. package/src/apps/workflow/engine/node-executor.ts +104 -0
  162. package/src/apps/workflow/engine/node-registry.ts +15 -0
  163. package/src/apps/workflow/engine/variable-resolver.ts +109 -0
  164. package/src/apps/workflow/mcp.ts +223 -0
  165. package/src/apps/workflow/node_modules/.bin/tsc +21 -0
  166. package/src/apps/workflow/node_modules/.bin/tsserver +21 -0
  167. package/src/apps/workflow/node_modules/.bin/tsx +21 -0
  168. package/src/apps/workflow/package.json +25 -0
  169. package/src/apps/workflow/public/editor/canvas.js +366 -0
  170. package/src/apps/workflow/public/editor/drag-manager.js +326 -0
  171. package/src/apps/workflow/public/editor/edge-renderer.js +235 -0
  172. package/src/apps/workflow/public/editor/history-manager.js +147 -0
  173. package/src/apps/workflow/public/editor/layout-engine.js +159 -0
  174. package/src/apps/workflow/public/editor/node-renderer.js +199 -0
  175. package/src/apps/workflow/public/editor/selection-manager.js +193 -0
  176. package/src/apps/workflow/public/favicon.svg +7 -0
  177. package/src/apps/workflow/public/models/node-types.js +300 -0
  178. package/src/apps/workflow/public/models/workflow-model.js +257 -0
  179. package/src/apps/workflow/public/page.css +406 -0
  180. package/src/apps/workflow/public/page.js +658 -0
  181. package/src/apps/workflow/public/panels/inspector.js +360 -0
  182. package/src/apps/workflow/public/panels/palette.js +106 -0
  183. package/src/apps/workflow/public/panels/run-view.js +275 -0
  184. package/src/apps/workflow/public/panels/toolbar.js +232 -0
  185. package/src/apps/workflow/public/panels/workflow-list.js +237 -0
  186. package/src/apps/workflow/public/state/store.js +47 -0
  187. package/src/apps/workflow/services/custom-node-loader.ts +48 -0
  188. package/src/apps/workflow/services/legacy-converter.ts +72 -0
  189. package/src/apps/workflow/services/run-manager.ts +190 -0
  190. package/src/apps/workflow/services/workflow-store.ts +424 -0
  191. package/src/apps/workflow/services/workflow-validator.test.ts +103 -0
  192. package/src/apps/workflow/services/workflow-validator.ts +98 -0
  193. package/src/apps/workflow/src/index.ts +10 -0
  194. package/src/apps/workflow/templates/ci-pipeline.json +18 -0
  195. package/src/apps/workflow/templates/code-review.json +22 -0
  196. package/src/apps/workflow/templates/kanban-testing.json +24 -0
  197. package/src/apps/workflow/tsconfig.json +8 -0
  198. package/src/apps/workflow/types.ts +268 -0
  199. package/src/packages/auth-middleware.ts +14 -0
  200. package/src/packages/design-tokens/.turbo/turbo-build.log +10 -0
  201. package/src/packages/design-tokens/STYLEGUIDE.md +414 -0
  202. package/src/packages/design-tokens/build.js +413 -0
  203. package/src/packages/design-tokens/demo/index.html +1367 -0
  204. package/src/packages/design-tokens/demo/proposition-a.html +717 -0
  205. package/src/packages/design-tokens/demo/proposition-b.html +1239 -0
  206. package/src/packages/design-tokens/demo/proposition-c.html +1049 -0
  207. package/src/packages/design-tokens/dist/tailwind-preset.js +115 -0
  208. package/src/packages/design-tokens/dist/tokens.css +345 -0
  209. package/src/packages/design-tokens/dist/tokens.d.ts +229 -0
  210. package/src/packages/design-tokens/dist/tokens.js +386 -0
  211. package/src/packages/design-tokens/package.json +25 -0
  212. package/src/packages/design-tokens/tokens.json +228 -0
  213. package/src/packages/devtools-middleware.ts +22 -0
  214. package/src/packages/eslint-config/index.js +63 -0
  215. package/src/packages/eslint-config/node_modules/.bin/eslint +21 -0
  216. package/src/packages/eslint-config/package.json +18 -0
  217. package/src/packages/json-file-store.ts +232 -0
  218. package/src/packages/mcp-utils/.turbo/turbo-build.log +5 -0
  219. package/src/packages/mcp-utils/dist/index.d.ts +33 -0
  220. package/src/packages/mcp-utils/dist/index.d.ts.map +1 -0
  221. package/src/packages/mcp-utils/dist/index.js +126 -0
  222. package/src/packages/mcp-utils/dist/index.js.map +1 -0
  223. package/src/packages/mcp-utils/node_modules/.bin/tsc +21 -0
  224. package/src/packages/mcp-utils/node_modules/.bin/tsserver +21 -0
  225. package/src/packages/mcp-utils/package.json +32 -0
  226. package/src/packages/mcp-utils/src/index.ts +171 -0
  227. package/src/packages/mcp-utils/tsconfig.json +9 -0
  228. package/src/packages/paths.ts +18 -0
  229. package/src/packages/project-context/index.js +55 -0
  230. package/src/packages/project-context/package.json +13 -0
  231. package/src/packages/project-store.ts +127 -0
  232. package/src/packages/server-sniffer.ts +132 -0
  233. package/src/packages/shared-assets/favicon.svg +7 -0
  234. package/src/packages/shared-assets/keymap-registry.js +512 -0
  235. package/src/packages/shared-assets/logo.svg +6 -0
  236. package/src/packages/shared-assets/package.json +11 -0
  237. package/src/packages/shared-assets/ui-utils.js +48 -0
  238. package/src/packages/shared-assets/voice-widget.d.ts +37 -0
  239. package/src/packages/shared-assets/voice-widget.js +695 -0
  240. package/src/packages/shared-types/.turbo/turbo-build.log +5 -0
  241. package/src/packages/shared-types/dist/index.d.ts +39 -0
  242. package/src/packages/shared-types/dist/index.d.ts.map +1 -0
  243. package/src/packages/shared-types/node_modules/.bin/tsc +21 -0
  244. package/src/packages/shared-types/node_modules/.bin/tsserver +21 -0
  245. package/src/packages/shared-types/package.json +25 -0
  246. package/src/packages/shared-types/src/index.ts +41 -0
  247. package/src/packages/shared-types/tsconfig.json +11 -0
  248. package/src/packages/tsconfig/base.json +15 -0
  249. package/src/packages/tsconfig/next.json +14 -0
  250. package/src/packages/tsconfig/node.json +11 -0
  251. package/src/packages/tsconfig/package.json +10 -0
  252. package/turbo.json +25 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Daniel Kutyla
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,338 @@
1
+ <p align="center">
2
+ <img src="assets/screenshots/dashboard.png" alt="DevGlide Dashboard" width="800" />
3
+ </p>
4
+
5
+ <h1 align="center">devglide</h1>
6
+
7
+ <p align="center">
8
+ <strong>AI-native development environment for Claude Code</strong><br/>
9
+ A modular toolkit that gives your AI coding assistant project management, browser testing,<br/>
10
+ workflow automation, and more — all through MCP tools and a unified dashboard.
11
+ </p>
12
+
13
+ <p align="center">
14
+ <a href="#quick-start">Quick Start</a> &bull;
15
+ <a href="#modules">Modules</a> &bull;
16
+ <a href="#architecture">Architecture</a> &bull;
17
+ <a href="#mcp-tools">MCP Tools</a> &bull;
18
+ <a href="#license">License</a>
19
+ </p>
20
+
21
+ <p align="center">
22
+ <img src="https://img.shields.io/badge/MCP_Tools-51-22c55e" alt="51 MCP Tools" />
23
+ <img src="https://img.shields.io/badge/MCP_Servers-8-3b82f6" alt="8 MCP Servers" />
24
+ <img src="https://img.shields.io/badge/App_Modules-10-f59e0b" alt="10 App Modules" />
25
+ <img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License" />
26
+ <img src="https://img.shields.io/badge/node-%3E%3D22-brightgreen" alt="Node.js >= 22" />
27
+ </p>
28
+
29
+ ---
30
+
31
+ ## What is DevGlide?
32
+
33
+ Claude Code is powerful on its own, but it operates in a text-only terminal. DevGlide gives it **eyes, hands, and memory** — a browser dashboard with visual tools that Claude controls through [MCP](https://modelcontextprotocol.io/).
34
+
35
+ **Plan** — Kanban boards with features, tasks, bugs, work logs, and review feedback. Claude picks up tasks, updates progress, and records what was done.
36
+
37
+ **Test** — Browser automation that runs UI scenarios against your live app. Build regression suites that Claude executes before every commit.
38
+
39
+ **Automate** — Visual DAG workflows with shell commands, decisions, loops, and integrations. Define processes once, trigger them by prompt or event.
40
+
41
+ ## Quick Start
42
+
43
+ ```bash
44
+ # Install globally
45
+ npm install -g devglide
46
+
47
+ # Set up MCP servers and Claude Code integration
48
+ devglide setup
49
+
50
+ # Start the dashboard
51
+ devglide dev
52
+ ```
53
+
54
+ Open **http://localhost:7000** — that's it. Claude Code can now use all 51 MCP tools.
55
+
56
+ > **Requirements:** Node.js >= 22, [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI
57
+ >
58
+ > **Platforms:** Linux and macOS. Windows users should run devglide under WSL or Git Bash.
59
+
60
+ ## Modules
61
+
62
+ DevGlide ships 10 integrated modules. Eight expose MCP servers that Claude Code calls directly; two are dashboard-only tools.
63
+
64
+ ### Kanban — Task Management
65
+
66
+ Organize work into features with full kanban boards. Columns flow from Backlog through Done. Claude picks up tasks, moves them through stages, appends work logs, and records review feedback — all via MCP.
67
+
68
+ <img src="assets/screenshots/kanban.png" alt="Kanban board with task cards across columns" width="800" />
69
+
70
+ ### Shell — Terminal Multiplexer
71
+
72
+ Multi-pane terminal dashboard with PTY emulation and 200KB scrollback per pane. Claude can create panes, run commands, and read output. Supports bash and embedded browser views.
73
+
74
+ <img src="assets/screenshots/shell.png" alt="Four terminal panes with an embedded browser view" width="800" />
75
+
76
+ ### Test — Browser UI Automation
77
+
78
+ LLM-driven browser automation with a saved scenario library. Write test sequences using commands like `click`, `type`, `assertText`, and `waitFor`. Claude runs them before every commit to catch regressions.
79
+
80
+ <img src="assets/screenshots/test.png" alt="Test runner with saved scenarios and run history" width="800" />
81
+
82
+ ### Workflow — Visual DAG Builder
83
+
84
+ Define multi-step processes as directed acyclic graphs. Node types include shell commands, kanban ops, git ops, decisions, loops, HTTP calls, and sub-workflows. Claude matches user prompts to workflows automatically.
85
+
86
+ <img src="assets/screenshots/workflow.png" alt="Visual workflow editor with connected nodes" width="800" />
87
+
88
+ ### Coder — In-Browser Editor
89
+
90
+ File tree viewer and editor for navigating your monorepo directly in the dashboard. Browse, read, and edit files without leaving the browser.
91
+
92
+ <img src="assets/screenshots/coder.png" alt="File tree with package.json open in the editor" width="800" />
93
+
94
+ ### Voice — Speech-to-Text
95
+
96
+ Configurable speech-to-text transcription with provider selection, model configuration, and usage statistics. Drop audio files or record directly for transcription.
97
+
98
+ <img src="assets/screenshots/voice.png" alt="Voice configuration with transcription statistics" width="800" />
99
+
100
+ ### Documentation
101
+
102
+ Product docs and guides served directly in the dashboard with navigation, module reference, and API documentation.
103
+
104
+ <img src="assets/screenshots/documentation.png" alt="Documentation viewer with module cards" width="800" />
105
+
106
+ ### And More
107
+
108
+ | Module | Type | What it does |
109
+ |--------|------|-------------|
110
+ | **Vocabulary** | MCP | Domain-specific term dictionary for consistent AI interpretation |
111
+ | **Log** | MCP | Browser console capture, log streaming, and session tracking |
112
+ | **Prompts** | MCP | Reusable prompt template library with `{{variable}}` interpolation |
113
+ | **Keymap** | UI | Keyboard shortcut configuration dashboard |
114
+
115
+ ## Architecture
116
+
117
+ ```
118
+ ┌─────────────────────────────────────────────────────────┐
119
+ │ Claude Code (CLI) │
120
+ │ │
121
+ │ "create a kanban task" "run the smoke tests" │
122
+ │ "check the logs" "match a workflow" │
123
+ └────────────┬────────────────────────┬───────────────────┘
124
+ │ stdio (MCP) │ stdio (MCP)
125
+ ▼ ▼
126
+ ┌────────────────────────────────────────────────────────┐
127
+ │ DevGlide MCP Servers (x8) │
128
+ │ │
129
+ │ kanban shell test workflow vocab voice log prompts │
130
+ └────────────────────────┬───────────────────────────────┘
131
+
132
+ shared state
133
+
134
+
135
+ ┌────────────────────────────────────────────────────────┐
136
+ │ Unified HTTP Server (:7000) │
137
+ │ │
138
+ │ REST API Socket.io Static Assets MCP/HTTP │
139
+ │ /api/* real-time /app/* /mcp/* │
140
+ └────────────────────────┬───────────────────────────────┘
141
+
142
+
143
+ ┌────────────────────────────────────────────────────────┐
144
+ │ Browser Dashboard │
145
+ │ │
146
+ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
147
+ │ │ Kanban │ │ Shell │ │ Test │ │ Log │ ... │
148
+ │ └────────┘ └────────┘ └────────┘ └────────┘ │
149
+ └────────────────────────────────────────────────────────┘
150
+ ```
151
+
152
+ **How it works:** `devglide setup` registers 8 MCP servers with Claude Code. Each server runs as an isolated stdio process. The same tools are also available via HTTP on the unified server, so the browser dashboard and Claude Code always share the same state.
153
+
154
+ ## MCP Tools
155
+
156
+ 51 tools across 8 servers. Expand each section for the full reference.
157
+
158
+ <details>
159
+ <summary><strong>Kanban</strong> — 15 tools</summary>
160
+
161
+ | Tool | Description |
162
+ |------|-------------|
163
+ | `kanban_list_features` | List all features with pagination |
164
+ | `kanban_create_feature` | Create a new feature board |
165
+ | `kanban_get_feature` | Get feature details with columns and tasks |
166
+ | `kanban_update_feature` | Update feature name, description, or color |
167
+ | `kanban_delete_feature` | Delete a feature and its tasks |
168
+ | `kanban_list_items` | List tasks/bugs with filtering and pagination |
169
+ | `kanban_create_item` | Create a new task or bug |
170
+ | `kanban_get_item` | Get full item details |
171
+ | `kanban_update_item` | Update item fields |
172
+ | `kanban_move_item` | Move item to a different column |
173
+ | `kanban_delete_item` | Delete a task or bug |
174
+ | `kanban_append_work_log` | Record work done (append-only, versioned) |
175
+ | `kanban_get_work_log` | Read full work log history |
176
+ | `kanban_append_review` | Add review feedback (append-only, versioned) |
177
+ | `kanban_get_review_history` | Read review history |
178
+
179
+ </details>
180
+
181
+ <details>
182
+ <summary><strong>Shell</strong> — 5 tools</summary>
183
+
184
+ | Tool | Description |
185
+ |------|-------------|
186
+ | `shell_list_panes` | List active terminal panes with CWD |
187
+ | `shell_create_pane` | Create a new terminal pane |
188
+ | `shell_close_pane` | Close a terminal pane |
189
+ | `shell_run_command` | Execute a command and capture output |
190
+ | `shell_get_scrollback` | Get recent terminal buffer |
191
+
192
+ </details>
193
+
194
+ <details>
195
+ <summary><strong>Test</strong> — 7 tools</summary>
196
+
197
+ | Tool | Description |
198
+ |------|-------------|
199
+ | `test_commands` | List available automation commands |
200
+ | `test_run_scenario` | Execute an ad-hoc test scenario |
201
+ | `test_save_scenario` | Save a scenario to the library |
202
+ | `test_list_saved` | List saved scenarios |
203
+ | `test_run_saved` | Run a saved scenario by ID |
204
+ | `test_delete_saved` | Remove a saved scenario |
205
+ | `test_get_result` | Check execution results and timing |
206
+
207
+ </details>
208
+
209
+ <details>
210
+ <summary><strong>Workflow</strong> — 6 tools</summary>
211
+
212
+ | Tool | Description |
213
+ |------|-------------|
214
+ | `workflow_list` | List all workflows |
215
+ | `workflow_get` | Get full workflow graph |
216
+ | `workflow_create` | Create a new workflow |
217
+ | `workflow_get_instructions` | Compile instructions from enabled workflows |
218
+ | `workflow_match` | Match user prompt to relevant workflows |
219
+ | `workflow_toggle` | Enable or disable a workflow |
220
+
221
+ </details>
222
+
223
+ <details>
224
+ <summary><strong>Vocabulary</strong> — 6 tools</summary>
225
+
226
+ | Tool | Description |
227
+ |------|-------------|
228
+ | `vocabulary_list` | List all term definitions |
229
+ | `vocabulary_lookup` | Look up a term by name or alias |
230
+ | `vocabulary_add` | Add a new term definition |
231
+ | `vocabulary_update` | Update an existing term |
232
+ | `vocabulary_remove` | Delete a term |
233
+ | `vocabulary_context` | Get all terms as compiled markdown |
234
+
235
+ </details>
236
+
237
+ <details>
238
+ <summary><strong>Voice</strong> — 2 tools</summary>
239
+
240
+ | Tool | Description |
241
+ |------|-------------|
242
+ | `voice_transcribe` | Transcribe audio to text |
243
+ | `voice_status` | Check service status and stats |
244
+
245
+ </details>
246
+
247
+ <details>
248
+ <summary><strong>Log</strong> — 4 tools</summary>
249
+
250
+ | Tool | Description |
251
+ |------|-------------|
252
+ | `log_write` | Append a log entry |
253
+ | `log_read` | Read recent log entries |
254
+ | `log_clear` | Clear a specific log file |
255
+ | `log_clear_all` | Clear all tracked session logs |
256
+
257
+ </details>
258
+
259
+ <details>
260
+ <summary><strong>Prompts</strong> — 6 tools</summary>
261
+
262
+ | Tool | Description |
263
+ |------|-------------|
264
+ | `prompts_list` | List prompts with filtering |
265
+ | `prompts_get` | Get full prompt with detected variables |
266
+ | `prompts_render` | Render template with variable substitution |
267
+ | `prompts_add` | Save a new prompt template |
268
+ | `prompts_update` | Update prompt content or metadata |
269
+ | `prompts_remove` | Delete a prompt |
270
+
271
+ </details>
272
+
273
+ ## CLI Reference
274
+
275
+ ```bash
276
+ devglide dev # Run server in foreground (recommended)
277
+ devglide start # Start as background daemon
278
+ devglide stop # Stop the server
279
+ devglide restart # Restart the server
280
+ devglide status # Show running status
281
+ devglide logs # Tail server logs
282
+ devglide setup # Register MCP servers with Claude Code
283
+ devglide teardown # Unregister MCP servers
284
+ devglide mcp <name> # Launch a single MCP server on stdio
285
+ devglide list # Show available MCP servers
286
+ ```
287
+
288
+ ## Tech Stack
289
+
290
+ | Layer | Technology |
291
+ |-------|-----------|
292
+ | Runtime | Node.js >= 22 (ES Modules) |
293
+ | Language | TypeScript 5.8 |
294
+ | Server | Express 5, Socket.io 4 |
295
+ | MCP | @modelcontextprotocol/sdk |
296
+ | Database | better-sqlite3 (embedded) |
297
+ | Terminal | node-pty |
298
+ | Monorepo | pnpm workspaces + Turborepo |
299
+ | Validation | Zod |
300
+ | Testing | Vitest |
301
+
302
+ ## Project Structure
303
+
304
+ ```
305
+ devglide/
306
+ ├── bin/devglide.js # CLI entry point
307
+ ├── src/
308
+ │ ├── server.ts # Unified HTTP server (:7000)
309
+ │ ├── apps/
310
+ │ │ ├── kanban/ # Task management
311
+ │ │ ├── shell/ # Terminal multiplexer
312
+ │ │ ├── test/ # Browser automation
313
+ │ │ ├── workflow/ # DAG workflow engine
314
+ │ │ ├── vocabulary/ # Domain terminology
315
+ │ │ ├── voice/ # Speech-to-text
316
+ │ │ ├── log/ # Console capture
317
+ │ │ ├── prompts/ # Prompt templates
318
+ │ │ ├── coder/ # In-browser editor
319
+ │ │ └── keymap/ # Keyboard shortcuts
320
+ │ └── packages/
321
+ │ ├── mcp-utils/ # MCP server factory
322
+ │ ├── design-tokens/ # UI design system
323
+ │ ├── shared-types/ # TypeScript types
324
+ │ └── ...
325
+ └── ~/.devglide/ # Runtime state (DB, logs, PIDs)
326
+ ```
327
+
328
+ ## Why DevGlide?
329
+
330
+ AI coding assistants are constrained by their interface. Claude Code runs in a terminal — it can read and write files, but it can't manage a project board, watch browser logs, run visual test suites, or follow repeatable workflows.
331
+
332
+ DevGlide bridges that gap. Instead of building one monolithic tool, it composes **small, focused MCP servers** that each do one thing well. Claude Code discovers them automatically and uses them as naturally as it uses `git` or `npm`.
333
+
334
+ The result: your AI assistant doesn't just write code — it **plans** work, **tests** the UI, **automates** processes, and **remembers** domain context. All while you watch it happen in a live dashboard.
335
+
336
+ ## License
337
+
338
+ [MIT](LICENSE) &copy; 2026 Daniel Kutyla
@@ -0,0 +1,94 @@
1
+ // Managed CLAUDE.md section for DevGlide onboarding instructions.
2
+ // Installed by `devglide setup`, removed by `devglide teardown`.
3
+
4
+ const VERSION = "0.1.0";
5
+ const BEGIN = `<!-- DEVGLIDE:BEGIN v${VERSION} -->`;
6
+ const END = "<!-- DEVGLIDE:END -->";
7
+
8
+ export function getClaudeMdContent() {
9
+ return `${BEGIN}
10
+ # DevGlide — AI Workflow Toolkit
11
+
12
+ DevGlide gives you MCP tools for kanban boards, shell automation, test runners,
13
+ workflows, vocabulary, voice, prompts, logging, and documentation — all wired
14
+ into your coding assistant. Follow the rules below so the tools work together.
15
+
16
+ ## Priority Rules
17
+
18
+ 1. **Always call \`workflow_match\`** with the user's prompt before responding.
19
+ If a workflow matches, follow its instructions exactly.
20
+ 2. **Call \`vocabulary_lookup\`** when you encounter unfamiliar or ambiguous terms
21
+ that could be domain jargon, project names, or abbreviations.
22
+ 3. **Update kanban status** — move items to In Progress when starting work,
23
+ to In Review / Testing when done. Never move items to Done (only the user can).
24
+ 4. **Append a work log** via \`kanban_append_work_log\` after completing work
25
+ on any kanban task.
26
+ 5. **Pick tasks from the Todo column** by default unless told otherwise.
27
+
28
+ ## MCP Servers
29
+
30
+ | Server | Purpose |
31
+ |-----------------|----------------------------------------------|
32
+ | devglide-kanban | Task boards — features, items, reviews, logs |
33
+ | devglide-shell | Terminal pane management and command execution|
34
+ | devglide-test | Browser automation test scenarios |
35
+ | devglide-workflow | Reusable workflow templates and matching |
36
+ | devglide-vocabulary | Domain term definitions and lookups |
37
+ | devglide-voice | Voice transcription |
38
+ | devglide-log | Structured logging |
39
+ | devglide-prompts | Prompt templates |
40
+
41
+ ## Common Patterns
42
+
43
+ ### Creating a feature
44
+ 1. \`kanban_create_feature\` — create the feature board
45
+ 2. \`kanban_create_item\` — add tasks to the feature's Todo column
46
+ 3. Start working on items one by one
47
+
48
+ ### Starting work on a task
49
+ 1. \`workflow_match\` — check for an applicable workflow
50
+ 2. \`kanban_move_item\` to In Progress
51
+ 3. Implement changes
52
+ 4. \`kanban_append_work_log\` — record what was done
53
+ 5. \`kanban_move_item\` to In Review or Testing
54
+
55
+ ### Running tests
56
+ 1. \`test_list_saved\` — see existing test scenarios
57
+ 2. \`test_run_saved\` — run a saved scenario, or \`test_run_scenario\` for ad-hoc
58
+ 3. \`test_get_result\` — check results
59
+ ${END}`;
60
+ }
61
+
62
+ const SECTION_RE = new RegExp(
63
+ `${escapeRegex("<!-- DEVGLIDE:BEGIN")}[^>]*-->[\\s\\S]*?${escapeRegex(END)}`,
64
+ );
65
+
66
+ function escapeRegex(str) {
67
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
68
+ }
69
+
70
+ /** Returns true if the managed section exists in content. */
71
+ export function hasSection(content) {
72
+ return SECTION_RE.test(content);
73
+ }
74
+
75
+ /** Idempotent insert or replace of the managed section. */
76
+ export function injectSection(existingContent, newSection) {
77
+ if (hasSection(existingContent)) {
78
+ return existingContent.replace(SECTION_RE, newSection.trim());
79
+ }
80
+ // Append with separator
81
+ const separator = existingContent.length > 0 && !existingContent.endsWith("\n\n")
82
+ ? existingContent.endsWith("\n") ? "\n" : "\n\n"
83
+ : "";
84
+ return existingContent + separator + newSection.trim() + "\n";
85
+ }
86
+
87
+ /** Remove the managed section cleanly. */
88
+ export function removeSection(existingContent) {
89
+ if (!hasSection(existingContent)) return existingContent;
90
+ return existingContent
91
+ .replace(SECTION_RE, "")
92
+ .replace(/\n{3,}/g, "\n\n")
93
+ .trim() + (existingContent.trim().length > 0 ? "\n" : "");
94
+ }