lm-assist 0.1.65 → 0.1.67

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 (394) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +246 -124
  4. package/commands/run.md +106 -0
  5. package/commands/sessions.md +102 -0
  6. package/commands/summary.md +192 -0
  7. package/core/dist/agent-session-store.d.ts.map +1 -1
  8. package/core/dist/agent-session-store.js +2 -0
  9. package/core/dist/agent-session-store.js.map +1 -1
  10. package/core/dist/api/sessions-api.d.ts.map +1 -1
  11. package/core/dist/api/sessions-api.js +5 -1
  12. package/core/dist/api/sessions-api.js.map +1 -1
  13. package/core/dist/learning-store.d.ts +83 -0
  14. package/core/dist/learning-store.d.ts.map +1 -0
  15. package/core/dist/learning-store.js +206 -0
  16. package/core/dist/learning-store.js.map +1 -0
  17. package/core/dist/project-summary-store.d.ts +47 -0
  18. package/core/dist/project-summary-store.d.ts.map +1 -0
  19. package/core/dist/project-summary-store.js +108 -0
  20. package/core/dist/project-summary-store.js.map +1 -0
  21. package/core/dist/projects-service.d.ts +2 -0
  22. package/core/dist/projects-service.d.ts.map +1 -1
  23. package/core/dist/projects-service.js +1 -0
  24. package/core/dist/projects-service.js.map +1 -1
  25. package/core/dist/prompt-queue-store.d.ts +107 -0
  26. package/core/dist/prompt-queue-store.d.ts.map +1 -0
  27. package/core/dist/prompt-queue-store.js +215 -0
  28. package/core/dist/prompt-queue-store.js.map +1 -0
  29. package/core/dist/routes/core/sessions.routes.d.ts.map +1 -1
  30. package/core/dist/routes/core/sessions.routes.js +357 -0
  31. package/core/dist/routes/core/sessions.routes.js.map +1 -1
  32. package/core/dist/session-cache.d.ts +2 -0
  33. package/core/dist/session-cache.d.ts.map +1 -1
  34. package/core/dist/session-cache.js +72 -0
  35. package/core/dist/session-cache.js.map +1 -1
  36. package/core/dist/session-summary-store.d.ts +68 -0
  37. package/core/dist/session-summary-store.d.ts.map +1 -0
  38. package/core/dist/session-summary-store.js +175 -0
  39. package/core/dist/session-summary-store.js.map +1 -0
  40. package/package.json +1 -1
  41. package/web/.next/BUILD_ID +1 -1
  42. package/web/.next/build-manifest.json +2 -2
  43. package/web/.next/fallback-build-manifest.json +2 -2
  44. package/web/.next/server/app/(dashboard)/assist-resources/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(dashboard)/knowledge/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(dashboard)/machines/page_client-reference-manifest.js +1 -1
  47. package/web/.next/server/app/(dashboard)/process-dashboard/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(dashboard)/search/page_client-reference-manifest.js +1 -1
  50. package/web/.next/server/app/(dashboard)/session-dashboard/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(dashboard)/tasks/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(dashboard)/terminal-dashboard/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/_global-error.html +2 -2
  57. package/web/.next/server/app/_global-error.rsc +1 -1
  58. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  59. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  60. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  61. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  62. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  63. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/_not-found.html +1 -1
  65. package/web/.next/server/app/_not-found.rsc +4 -4
  66. package/web/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  67. package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  68. package/web/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  69. package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  70. package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  71. package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  72. package/web/.next/server/app/assist-resources.html +1 -1
  73. package/web/.next/server/app/assist-resources.rsc +6 -6
  74. package/web/.next/server/app/assist-resources.segments/!KGRhc2hib2FyZCk/assist-resources/__PAGE__.segment.rsc +2 -2
  75. package/web/.next/server/app/assist-resources.segments/!KGRhc2hib2FyZCk/assist-resources.segment.rsc +1 -1
  76. package/web/.next/server/app/assist-resources.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  77. package/web/.next/server/app/assist-resources.segments/_full.segment.rsc +6 -6
  78. package/web/.next/server/app/assist-resources.segments/_head.segment.rsc +1 -1
  79. package/web/.next/server/app/assist-resources.segments/_index.segment.rsc +4 -4
  80. package/web/.next/server/app/assist-resources.segments/_tree.segment.rsc +1 -1
  81. package/web/.next/server/app/auth/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/auth.html +1 -1
  83. package/web/.next/server/app/auth.rsc +5 -5
  84. package/web/.next/server/app/auth.segments/_full.segment.rsc +5 -5
  85. package/web/.next/server/app/auth.segments/_head.segment.rsc +1 -1
  86. package/web/.next/server/app/auth.segments/_index.segment.rsc +4 -4
  87. package/web/.next/server/app/auth.segments/_tree.segment.rsc +1 -1
  88. package/web/.next/server/app/auth.segments/auth/__PAGE__.segment.rsc +2 -2
  89. package/web/.next/server/app/auth.segments/auth.segment.rsc +1 -1
  90. package/web/.next/server/app/console/page_client-reference-manifest.js +1 -1
  91. package/web/.next/server/app/console.html +1 -1
  92. package/web/.next/server/app/console.rsc +5 -5
  93. package/web/.next/server/app/console.segments/_full.segment.rsc +5 -5
  94. package/web/.next/server/app/console.segments/_head.segment.rsc +1 -1
  95. package/web/.next/server/app/console.segments/_index.segment.rsc +4 -4
  96. package/web/.next/server/app/console.segments/_tree.segment.rsc +1 -1
  97. package/web/.next/server/app/console.segments/console/__PAGE__.segment.rsc +2 -2
  98. package/web/.next/server/app/console.segments/console.segment.rsc +1 -1
  99. package/web/.next/server/app/knowledge.html +1 -1
  100. package/web/.next/server/app/knowledge.rsc +6 -6
  101. package/web/.next/server/app/knowledge.segments/!KGRhc2hib2FyZCk/knowledge/__PAGE__.segment.rsc +2 -2
  102. package/web/.next/server/app/knowledge.segments/!KGRhc2hib2FyZCk/knowledge.segment.rsc +1 -1
  103. package/web/.next/server/app/knowledge.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  104. package/web/.next/server/app/knowledge.segments/_full.segment.rsc +6 -6
  105. package/web/.next/server/app/knowledge.segments/_head.segment.rsc +1 -1
  106. package/web/.next/server/app/knowledge.segments/_index.segment.rsc +4 -4
  107. package/web/.next/server/app/knowledge.segments/_tree.segment.rsc +1 -1
  108. package/web/.next/server/app/lan-blocked/page_client-reference-manifest.js +1 -1
  109. package/web/.next/server/app/lan-blocked.html +1 -1
  110. package/web/.next/server/app/lan-blocked.rsc +5 -5
  111. package/web/.next/server/app/lan-blocked.segments/_full.segment.rsc +5 -5
  112. package/web/.next/server/app/lan-blocked.segments/_head.segment.rsc +1 -1
  113. package/web/.next/server/app/lan-blocked.segments/_index.segment.rsc +4 -4
  114. package/web/.next/server/app/lan-blocked.segments/_tree.segment.rsc +1 -1
  115. package/web/.next/server/app/lan-blocked.segments/lan-blocked/__PAGE__.segment.rsc +2 -2
  116. package/web/.next/server/app/lan-blocked.segments/lan-blocked.segment.rsc +1 -1
  117. package/web/.next/server/app/machines.html +1 -1
  118. package/web/.next/server/app/machines.rsc +6 -6
  119. package/web/.next/server/app/machines.segments/!KGRhc2hib2FyZCk/machines/__PAGE__.segment.rsc +2 -2
  120. package/web/.next/server/app/machines.segments/!KGRhc2hib2FyZCk/machines.segment.rsc +1 -1
  121. package/web/.next/server/app/machines.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  122. package/web/.next/server/app/machines.segments/_full.segment.rsc +6 -6
  123. package/web/.next/server/app/machines.segments/_head.segment.rsc +1 -1
  124. package/web/.next/server/app/machines.segments/_index.segment.rsc +4 -4
  125. package/web/.next/server/app/machines.segments/_tree.segment.rsc +1 -1
  126. package/web/.next/server/app/process-dashboard.html +1 -1
  127. package/web/.next/server/app/process-dashboard.rsc +6 -6
  128. package/web/.next/server/app/process-dashboard.segments/!KGRhc2hib2FyZCk/process-dashboard/__PAGE__.segment.rsc +2 -2
  129. package/web/.next/server/app/process-dashboard.segments/!KGRhc2hib2FyZCk/process-dashboard.segment.rsc +1 -1
  130. package/web/.next/server/app/process-dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  131. package/web/.next/server/app/process-dashboard.segments/_full.segment.rsc +6 -6
  132. package/web/.next/server/app/process-dashboard.segments/_head.segment.rsc +1 -1
  133. package/web/.next/server/app/process-dashboard.segments/_index.segment.rsc +4 -4
  134. package/web/.next/server/app/process-dashboard.segments/_tree.segment.rsc +1 -1
  135. package/web/.next/server/app/projects.html +1 -1
  136. package/web/.next/server/app/projects.rsc +6 -6
  137. package/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +2 -2
  138. package/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +1 -1
  139. package/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  140. package/web/.next/server/app/projects.segments/_full.segment.rsc +6 -6
  141. package/web/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  142. package/web/.next/server/app/projects.segments/_index.segment.rsc +4 -4
  143. package/web/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  144. package/web/.next/server/app/search.html +1 -1
  145. package/web/.next/server/app/search.rsc +6 -6
  146. package/web/.next/server/app/search.segments/!KGRhc2hib2FyZCk/search/__PAGE__.segment.rsc +2 -2
  147. package/web/.next/server/app/search.segments/!KGRhc2hib2FyZCk/search.segment.rsc +1 -1
  148. package/web/.next/server/app/search.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  149. package/web/.next/server/app/search.segments/_full.segment.rsc +6 -6
  150. package/web/.next/server/app/search.segments/_head.segment.rsc +1 -1
  151. package/web/.next/server/app/search.segments/_index.segment.rsc +4 -4
  152. package/web/.next/server/app/search.segments/_tree.segment.rsc +1 -1
  153. package/web/.next/server/app/session-dashboard.html +1 -1
  154. package/web/.next/server/app/session-dashboard.rsc +6 -6
  155. package/web/.next/server/app/session-dashboard.segments/!KGRhc2hib2FyZCk/session-dashboard/__PAGE__.segment.rsc +2 -2
  156. package/web/.next/server/app/session-dashboard.segments/!KGRhc2hib2FyZCk/session-dashboard.segment.rsc +1 -1
  157. package/web/.next/server/app/session-dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  158. package/web/.next/server/app/session-dashboard.segments/_full.segment.rsc +6 -6
  159. package/web/.next/server/app/session-dashboard.segments/_head.segment.rsc +1 -1
  160. package/web/.next/server/app/session-dashboard.segments/_index.segment.rsc +4 -4
  161. package/web/.next/server/app/session-dashboard.segments/_tree.segment.rsc +1 -1
  162. package/web/.next/server/app/sessions.html +1 -1
  163. package/web/.next/server/app/sessions.rsc +6 -6
  164. package/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +2 -2
  165. package/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +1 -1
  166. package/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  167. package/web/.next/server/app/sessions.segments/_full.segment.rsc +6 -6
  168. package/web/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  169. package/web/.next/server/app/sessions.segments/_index.segment.rsc +4 -4
  170. package/web/.next/server/app/sessions.segments/_tree.segment.rsc +1 -1
  171. package/web/.next/server/app/settings.html +1 -1
  172. package/web/.next/server/app/settings.rsc +6 -6
  173. package/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  174. package/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  175. package/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  176. package/web/.next/server/app/settings.segments/_full.segment.rsc +6 -6
  177. package/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  178. package/web/.next/server/app/settings.segments/_index.segment.rsc +4 -4
  179. package/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  180. package/web/.next/server/app/skills.html +1 -1
  181. package/web/.next/server/app/skills.rsc +6 -6
  182. package/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +2 -2
  183. package/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +1 -1
  184. package/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  185. package/web/.next/server/app/skills.segments/_full.segment.rsc +6 -6
  186. package/web/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  187. package/web/.next/server/app/skills.segments/_index.segment.rsc +4 -4
  188. package/web/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  189. package/web/.next/server/app/tasks.html +1 -1
  190. package/web/.next/server/app/tasks.rsc +6 -6
  191. package/web/.next/server/app/tasks.segments/!KGRhc2hib2FyZCk/tasks/__PAGE__.segment.rsc +2 -2
  192. package/web/.next/server/app/tasks.segments/!KGRhc2hib2FyZCk/tasks.segment.rsc +1 -1
  193. package/web/.next/server/app/tasks.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  194. package/web/.next/server/app/tasks.segments/_full.segment.rsc +6 -6
  195. package/web/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  196. package/web/.next/server/app/tasks.segments/_index.segment.rsc +4 -4
  197. package/web/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  198. package/web/.next/server/app/terminal-dashboard.html +1 -1
  199. package/web/.next/server/app/terminal-dashboard.rsc +6 -6
  200. package/web/.next/server/app/terminal-dashboard.segments/!KGRhc2hib2FyZCk/terminal-dashboard/__PAGE__.segment.rsc +2 -2
  201. package/web/.next/server/app/terminal-dashboard.segments/!KGRhc2hib2FyZCk/terminal-dashboard.segment.rsc +1 -1
  202. package/web/.next/server/app/terminal-dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  203. package/web/.next/server/app/terminal-dashboard.segments/_full.segment.rsc +6 -6
  204. package/web/.next/server/app/terminal-dashboard.segments/_head.segment.rsc +1 -1
  205. package/web/.next/server/app/terminal-dashboard.segments/_index.segment.rsc +4 -4
  206. package/web/.next/server/app/terminal-dashboard.segments/_tree.segment.rsc +1 -1
  207. package/web/.next/server/chunks/ssr/[root-of-the-server]__b2689499._.js +1 -1
  208. package/web/.next/server/chunks/ssr/[root-of-the-server]__b2689499._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/web_src_app_(dashboard)_sessions_page_tsx_a4b86be9._.js +1 -1
  210. package/web/.next/server/chunks/ssr/web_src_app_(dashboard)_sessions_page_tsx_a4b86be9._.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/web_src_lib_api-client_ts_05c71051._.js +1 -1
  212. package/web/.next/server/chunks/ssr/web_src_lib_api-client_ts_05c71051._.js.map +1 -1
  213. package/web/.next/server/pages/404.html +1 -1
  214. package/web/.next/server/pages/500.html +2 -2
  215. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  216. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  217. package/web/.next/standalone/web/.next/server/app/(dashboard)/assist-resources/page_client-reference-manifest.js +1 -1
  218. package/web/.next/standalone/web/.next/server/app/(dashboard)/knowledge/page_client-reference-manifest.js +1 -1
  219. package/web/.next/standalone/web/.next/server/app/(dashboard)/machines/page_client-reference-manifest.js +1 -1
  220. package/web/.next/standalone/web/.next/server/app/(dashboard)/process-dashboard/page_client-reference-manifest.js +1 -1
  221. package/web/.next/standalone/web/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  222. package/web/.next/standalone/web/.next/server/app/(dashboard)/search/page_client-reference-manifest.js +1 -1
  223. package/web/.next/standalone/web/.next/server/app/(dashboard)/session-dashboard/page_client-reference-manifest.js +1 -1
  224. package/web/.next/standalone/web/.next/server/app/(dashboard)/sessions/page_client-reference-manifest.js +1 -1
  225. package/web/.next/standalone/web/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  226. package/web/.next/standalone/web/.next/server/app/(dashboard)/skills/page_client-reference-manifest.js +1 -1
  227. package/web/.next/standalone/web/.next/server/app/(dashboard)/tasks/page_client-reference-manifest.js +1 -1
  228. package/web/.next/standalone/web/.next/server/app/(dashboard)/terminal-dashboard/page_client-reference-manifest.js +1 -1
  229. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  230. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  231. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  232. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  233. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  234. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  235. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  236. package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  237. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  238. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +4 -4
  239. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  240. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  241. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  242. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  243. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  244. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  245. package/web/.next/standalone/web/.next/server/app/assist-resources.html +1 -1
  246. package/web/.next/standalone/web/.next/server/app/assist-resources.rsc +6 -6
  247. package/web/.next/standalone/web/.next/server/app/assist-resources.segments/!KGRhc2hib2FyZCk/assist-resources/__PAGE__.segment.rsc +2 -2
  248. package/web/.next/standalone/web/.next/server/app/assist-resources.segments/!KGRhc2hib2FyZCk/assist-resources.segment.rsc +1 -1
  249. package/web/.next/standalone/web/.next/server/app/assist-resources.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  250. package/web/.next/standalone/web/.next/server/app/assist-resources.segments/_full.segment.rsc +6 -6
  251. package/web/.next/standalone/web/.next/server/app/assist-resources.segments/_head.segment.rsc +1 -1
  252. package/web/.next/standalone/web/.next/server/app/assist-resources.segments/_index.segment.rsc +4 -4
  253. package/web/.next/standalone/web/.next/server/app/assist-resources.segments/_tree.segment.rsc +1 -1
  254. package/web/.next/standalone/web/.next/server/app/auth/page_client-reference-manifest.js +1 -1
  255. package/web/.next/standalone/web/.next/server/app/auth.html +1 -1
  256. package/web/.next/standalone/web/.next/server/app/auth.rsc +5 -5
  257. package/web/.next/standalone/web/.next/server/app/auth.segments/_full.segment.rsc +5 -5
  258. package/web/.next/standalone/web/.next/server/app/auth.segments/_head.segment.rsc +1 -1
  259. package/web/.next/standalone/web/.next/server/app/auth.segments/_index.segment.rsc +4 -4
  260. package/web/.next/standalone/web/.next/server/app/auth.segments/_tree.segment.rsc +1 -1
  261. package/web/.next/standalone/web/.next/server/app/auth.segments/auth/__PAGE__.segment.rsc +2 -2
  262. package/web/.next/standalone/web/.next/server/app/auth.segments/auth.segment.rsc +1 -1
  263. package/web/.next/standalone/web/.next/server/app/console/page_client-reference-manifest.js +1 -1
  264. package/web/.next/standalone/web/.next/server/app/console.html +1 -1
  265. package/web/.next/standalone/web/.next/server/app/console.rsc +5 -5
  266. package/web/.next/standalone/web/.next/server/app/console.segments/_full.segment.rsc +5 -5
  267. package/web/.next/standalone/web/.next/server/app/console.segments/_head.segment.rsc +1 -1
  268. package/web/.next/standalone/web/.next/server/app/console.segments/_index.segment.rsc +4 -4
  269. package/web/.next/standalone/web/.next/server/app/console.segments/_tree.segment.rsc +1 -1
  270. package/web/.next/standalone/web/.next/server/app/console.segments/console/__PAGE__.segment.rsc +2 -2
  271. package/web/.next/standalone/web/.next/server/app/console.segments/console.segment.rsc +1 -1
  272. package/web/.next/standalone/web/.next/server/app/knowledge.html +1 -1
  273. package/web/.next/standalone/web/.next/server/app/knowledge.rsc +6 -6
  274. package/web/.next/standalone/web/.next/server/app/knowledge.segments/!KGRhc2hib2FyZCk/knowledge/__PAGE__.segment.rsc +2 -2
  275. package/web/.next/standalone/web/.next/server/app/knowledge.segments/!KGRhc2hib2FyZCk/knowledge.segment.rsc +1 -1
  276. package/web/.next/standalone/web/.next/server/app/knowledge.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  277. package/web/.next/standalone/web/.next/server/app/knowledge.segments/_full.segment.rsc +6 -6
  278. package/web/.next/standalone/web/.next/server/app/knowledge.segments/_head.segment.rsc +1 -1
  279. package/web/.next/standalone/web/.next/server/app/knowledge.segments/_index.segment.rsc +4 -4
  280. package/web/.next/standalone/web/.next/server/app/knowledge.segments/_tree.segment.rsc +1 -1
  281. package/web/.next/standalone/web/.next/server/app/lan-blocked/page_client-reference-manifest.js +1 -1
  282. package/web/.next/standalone/web/.next/server/app/lan-blocked.html +1 -1
  283. package/web/.next/standalone/web/.next/server/app/lan-blocked.rsc +5 -5
  284. package/web/.next/standalone/web/.next/server/app/lan-blocked.segments/_full.segment.rsc +5 -5
  285. package/web/.next/standalone/web/.next/server/app/lan-blocked.segments/_head.segment.rsc +1 -1
  286. package/web/.next/standalone/web/.next/server/app/lan-blocked.segments/_index.segment.rsc +4 -4
  287. package/web/.next/standalone/web/.next/server/app/lan-blocked.segments/_tree.segment.rsc +1 -1
  288. package/web/.next/standalone/web/.next/server/app/lan-blocked.segments/lan-blocked/__PAGE__.segment.rsc +2 -2
  289. package/web/.next/standalone/web/.next/server/app/lan-blocked.segments/lan-blocked.segment.rsc +1 -1
  290. package/web/.next/standalone/web/.next/server/app/machines.html +1 -1
  291. package/web/.next/standalone/web/.next/server/app/machines.rsc +6 -6
  292. package/web/.next/standalone/web/.next/server/app/machines.segments/!KGRhc2hib2FyZCk/machines/__PAGE__.segment.rsc +2 -2
  293. package/web/.next/standalone/web/.next/server/app/machines.segments/!KGRhc2hib2FyZCk/machines.segment.rsc +1 -1
  294. package/web/.next/standalone/web/.next/server/app/machines.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  295. package/web/.next/standalone/web/.next/server/app/machines.segments/_full.segment.rsc +6 -6
  296. package/web/.next/standalone/web/.next/server/app/machines.segments/_head.segment.rsc +1 -1
  297. package/web/.next/standalone/web/.next/server/app/machines.segments/_index.segment.rsc +4 -4
  298. package/web/.next/standalone/web/.next/server/app/machines.segments/_tree.segment.rsc +1 -1
  299. package/web/.next/standalone/web/.next/server/app/process-dashboard.html +1 -1
  300. package/web/.next/standalone/web/.next/server/app/process-dashboard.rsc +6 -6
  301. package/web/.next/standalone/web/.next/server/app/process-dashboard.segments/!KGRhc2hib2FyZCk/process-dashboard/__PAGE__.segment.rsc +2 -2
  302. package/web/.next/standalone/web/.next/server/app/process-dashboard.segments/!KGRhc2hib2FyZCk/process-dashboard.segment.rsc +1 -1
  303. package/web/.next/standalone/web/.next/server/app/process-dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  304. package/web/.next/standalone/web/.next/server/app/process-dashboard.segments/_full.segment.rsc +6 -6
  305. package/web/.next/standalone/web/.next/server/app/process-dashboard.segments/_head.segment.rsc +1 -1
  306. package/web/.next/standalone/web/.next/server/app/process-dashboard.segments/_index.segment.rsc +4 -4
  307. package/web/.next/standalone/web/.next/server/app/process-dashboard.segments/_tree.segment.rsc +1 -1
  308. package/web/.next/standalone/web/.next/server/app/projects.html +1 -1
  309. package/web/.next/standalone/web/.next/server/app/projects.rsc +6 -6
  310. package/web/.next/standalone/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects/__PAGE__.segment.rsc +2 -2
  311. package/web/.next/standalone/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk/projects.segment.rsc +1 -1
  312. package/web/.next/standalone/web/.next/server/app/projects.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  313. package/web/.next/standalone/web/.next/server/app/projects.segments/_full.segment.rsc +6 -6
  314. package/web/.next/standalone/web/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  315. package/web/.next/standalone/web/.next/server/app/projects.segments/_index.segment.rsc +4 -4
  316. package/web/.next/standalone/web/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  317. package/web/.next/standalone/web/.next/server/app/search.html +1 -1
  318. package/web/.next/standalone/web/.next/server/app/search.rsc +6 -6
  319. package/web/.next/standalone/web/.next/server/app/search.segments/!KGRhc2hib2FyZCk/search/__PAGE__.segment.rsc +2 -2
  320. package/web/.next/standalone/web/.next/server/app/search.segments/!KGRhc2hib2FyZCk/search.segment.rsc +1 -1
  321. package/web/.next/standalone/web/.next/server/app/search.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  322. package/web/.next/standalone/web/.next/server/app/search.segments/_full.segment.rsc +6 -6
  323. package/web/.next/standalone/web/.next/server/app/search.segments/_head.segment.rsc +1 -1
  324. package/web/.next/standalone/web/.next/server/app/search.segments/_index.segment.rsc +4 -4
  325. package/web/.next/standalone/web/.next/server/app/search.segments/_tree.segment.rsc +1 -1
  326. package/web/.next/standalone/web/.next/server/app/session-dashboard.html +1 -1
  327. package/web/.next/standalone/web/.next/server/app/session-dashboard.rsc +6 -6
  328. package/web/.next/standalone/web/.next/server/app/session-dashboard.segments/!KGRhc2hib2FyZCk/session-dashboard/__PAGE__.segment.rsc +2 -2
  329. package/web/.next/standalone/web/.next/server/app/session-dashboard.segments/!KGRhc2hib2FyZCk/session-dashboard.segment.rsc +1 -1
  330. package/web/.next/standalone/web/.next/server/app/session-dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  331. package/web/.next/standalone/web/.next/server/app/session-dashboard.segments/_full.segment.rsc +6 -6
  332. package/web/.next/standalone/web/.next/server/app/session-dashboard.segments/_head.segment.rsc +1 -1
  333. package/web/.next/standalone/web/.next/server/app/session-dashboard.segments/_index.segment.rsc +4 -4
  334. package/web/.next/standalone/web/.next/server/app/session-dashboard.segments/_tree.segment.rsc +1 -1
  335. package/web/.next/standalone/web/.next/server/app/sessions.html +1 -1
  336. package/web/.next/standalone/web/.next/server/app/sessions.rsc +6 -6
  337. package/web/.next/standalone/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions/__PAGE__.segment.rsc +2 -2
  338. package/web/.next/standalone/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk/sessions.segment.rsc +1 -1
  339. package/web/.next/standalone/web/.next/server/app/sessions.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  340. package/web/.next/standalone/web/.next/server/app/sessions.segments/_full.segment.rsc +6 -6
  341. package/web/.next/standalone/web/.next/server/app/sessions.segments/_head.segment.rsc +1 -1
  342. package/web/.next/standalone/web/.next/server/app/sessions.segments/_index.segment.rsc +4 -4
  343. package/web/.next/standalone/web/.next/server/app/sessions.segments/_tree.segment.rsc +1 -1
  344. package/web/.next/standalone/web/.next/server/app/settings.html +1 -1
  345. package/web/.next/standalone/web/.next/server/app/settings.rsc +6 -6
  346. package/web/.next/standalone/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings/__PAGE__.segment.rsc +2 -2
  347. package/web/.next/standalone/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk/settings.segment.rsc +1 -1
  348. package/web/.next/standalone/web/.next/server/app/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  349. package/web/.next/standalone/web/.next/server/app/settings.segments/_full.segment.rsc +6 -6
  350. package/web/.next/standalone/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  351. package/web/.next/standalone/web/.next/server/app/settings.segments/_index.segment.rsc +4 -4
  352. package/web/.next/standalone/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  353. package/web/.next/standalone/web/.next/server/app/skills.html +1 -1
  354. package/web/.next/standalone/web/.next/server/app/skills.rsc +6 -6
  355. package/web/.next/standalone/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills/__PAGE__.segment.rsc +2 -2
  356. package/web/.next/standalone/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk/skills.segment.rsc +1 -1
  357. package/web/.next/standalone/web/.next/server/app/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  358. package/web/.next/standalone/web/.next/server/app/skills.segments/_full.segment.rsc +6 -6
  359. package/web/.next/standalone/web/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  360. package/web/.next/standalone/web/.next/server/app/skills.segments/_index.segment.rsc +4 -4
  361. package/web/.next/standalone/web/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  362. package/web/.next/standalone/web/.next/server/app/tasks.html +1 -1
  363. package/web/.next/standalone/web/.next/server/app/tasks.rsc +6 -6
  364. package/web/.next/standalone/web/.next/server/app/tasks.segments/!KGRhc2hib2FyZCk/tasks/__PAGE__.segment.rsc +2 -2
  365. package/web/.next/standalone/web/.next/server/app/tasks.segments/!KGRhc2hib2FyZCk/tasks.segment.rsc +1 -1
  366. package/web/.next/standalone/web/.next/server/app/tasks.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  367. package/web/.next/standalone/web/.next/server/app/tasks.segments/_full.segment.rsc +6 -6
  368. package/web/.next/standalone/web/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  369. package/web/.next/standalone/web/.next/server/app/tasks.segments/_index.segment.rsc +4 -4
  370. package/web/.next/standalone/web/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  371. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.html +1 -1
  372. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.rsc +6 -6
  373. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.segments/!KGRhc2hib2FyZCk/terminal-dashboard/__PAGE__.segment.rsc +2 -2
  374. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.segments/!KGRhc2hib2FyZCk/terminal-dashboard.segment.rsc +1 -1
  375. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  376. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.segments/_full.segment.rsc +6 -6
  377. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.segments/_head.segment.rsc +1 -1
  378. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.segments/_index.segment.rsc +4 -4
  379. package/web/.next/standalone/web/.next/server/app/terminal-dashboard.segments/_tree.segment.rsc +1 -1
  380. package/web/.next/standalone/web/.next/server/chunks/ssr/[root-of-the-server]__b2689499._.js +1 -1
  381. package/web/.next/standalone/web/.next/server/chunks/ssr/web_src_app_(dashboard)_sessions_page_tsx_a4b86be9._.js +1 -1
  382. package/web/.next/standalone/web/.next/server/chunks/ssr/web_src_lib_api-client_ts_05c71051._.js +1 -1
  383. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  384. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  385. package/web/.next/static/chunks/{b8379a13740bc858.js → 5937d0a7953952c1.js} +1 -1
  386. package/web/.next/static/chunks/caf4f6e3f7bd8d7b.js +1 -0
  387. package/web/.next/static/chunks/d0ba26dc2e7b6503.js +1 -0
  388. package/web/.next/trace +1 -1
  389. package/web/.next/trace-build +1 -1
  390. package/web/.next/static/chunks/9127cc01f27e1bf2.js +0 -1
  391. package/web/.next/static/chunks/a17be113b31451a8.js +0 -1
  392. /package/web/.next/static/{T_gGCGNawIXlcJA_WZ2bH → KmCZSVL96On-DixrWoKE4}/_buildManifest.js +0 -0
  393. /package/web/.next/static/{T_gGCGNawIXlcJA_WZ2bH → KmCZSVL96On-DixrWoKE4}/_clientMiddlewareManifest.json +0 -0
  394. /package/web/.next/static/{T_gGCGNawIXlcJA_WZ2bH → KmCZSVL96On-DixrWoKE4}/_ssgManifest.js +0 -0
@@ -12,7 +12,7 @@
12
12
  "plugins": [
13
13
  {
14
14
  "name": "lm-assist",
15
- "version": "0.1.65",
15
+ "version": "0.1.67",
16
16
  "source": "./",
17
17
  "description": "Auto-build knowledge from Claude Code sessions and inject it as context. Inspect sessions with deep views into agents, tasks, teams, plans, and tool calls. Access and control all Claude Code terminals from any device via web browser. Includes MCP server (search, detail, feedback), context-injection hook, and 6 slash commands.",
18
18
  "category": "productivity",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lm-assist",
3
- "version": "0.1.65",
3
+ "version": "0.1.67",
4
4
  "description": "Knowledge management, session inspector, and web terminal control for Claude Code",
5
5
  "author": {
6
6
  "name": "langmartai"
package/README.md CHANGED
@@ -1,59 +1,83 @@
1
1
  # lm-assist
2
2
 
3
- Knowledge management, session inspector, and web terminal control for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Auto-build knowledge from your sessions and inject it as context. Inspect agents, tasks, teams, plans, and tool calls. Access and control all Claude Code terminals from any device via browser.
3
+ ## The Observability Platform for Claude Code & Agent SDK
4
+
5
+ Monitor, debug, and control AI coding agents with full session visibility, real-time execution tracking, and 155+ REST API endpoints.
4
6
 
5
7
  [![Discord](https://img.shields.io/discord/1475647234669543558?logo=discord&label=Discord&color=5865F2)](https://discord.gg/xb2BNnk4)
6
8
 
7
- ### Install
9
+ - **Monitor** — real-time execution tracking, per-model cost & token breakdown, SSE event stream
10
+ - **Debug** — 15 insight views per session: Chat, Thinking, Agents, Plans, Team, DAG, Files, Git & more
11
+ - **Control** — web terminal from any browser, start/abort agents via API, remote access from anywhere
8
12
 
9
- In Claude Code, run:
13
+ <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/architecture-observability.svg"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/architecture-observability.svg" alt="lm-assist Architecture — Observability Platform for Claude Code & Agent SDK" width="700"></a>
14
+
15
+ ### Install
10
16
 
11
17
  ```
12
18
  /plugin marketplace add langmartai/lm-assist
13
-
14
19
  /plugin install lm-assist@langmartai
15
20
  ```
16
21
 
17
- Then **open a new Claude Code session** and run:
22
+ Then **open a new Claude Code session** and run `/assist-setup`.
18
23
 
19
- ```
20
- /assist-setup
21
- ```
24
+ > **Read:** [Inside Claude Code: The Session File Format and How to Inspect It](https://databunny.medium.com/inside-claude-code-the-session-file-format-and-how-to-inspect-it-b9998e66d56b) — technical breakdown of the JSONL session format, message types, subagent trees, and how lm-assist surfaces it all.
25
+
26
+ ---
22
27
 
23
- This automatically registers:
24
- - **MCP server** — `search`, `detail`, `feedback` tools available in Claude Code
25
- - **Context hook** — injects relevant knowledge into each prompt
26
- - **Slash commands** — 6 commands for managing lm-assist
28
+ ## Why lm-assist
27
29
 
28
- ### How It Works
30
+ Claude Code and the Agent SDK have no built-in dashboard. You get a terminal or logs. When you're running multiple agents, debugging a failed execution, or tracking costs across a fleet of machines — you need full visibility into every session, every subagent, every tool call, every token spent.
29
31
 
30
- <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/architecture-diagram.svg"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/architecture-diagram.svg" alt="How lm-assist Works — architecture diagram" width="700"></a>
32
+ | Without lm-assist | With lm-assist |
33
+ |-------------------|---------------|
34
+ | Scroll through terminal output | 15 specialized views per session |
35
+ | No cost visibility | Per-model token & cost breakdown |
36
+ | Can't see what agents are doing | Real-time execution dashboard |
37
+ | No way to inspect subagent trees | Full DAG visualization |
38
+ | Terminal-only access | Web UI from any device, anywhere |
39
+ | Agent SDK runs are black boxes | Same session inspection as CLI |
31
40
 
32
- > *Left: Any MCP-compatible IDE (Claude Code, VS Code, Cursor, Codex CLI, Gemini CLI, Antigravity) accesses the knowledge base via MCP. Right: You access the Web UI from localhost, LAN, or langmart.ai for terminal management, session inspection, and more. [Full details →](docs/how-it-works.md)*
41
+ ---
33
42
 
34
- > **Read:** [Your Claude Sessions Are Gold: Stop Paying Twice for the Same Knowledge](https://databunny.medium.com/your-claude-sessions-are-gold-stop-paying-twice-for-the-same-knowledge-7632ac6ddb88) — deep dive into session knowledge reuse, CLAUDE.md vs context injection, and token cost savings.
43
+ ## Three Pillars
35
44
 
36
- > **Read:** [Inside Claude Code: The Session File Format and How to Inspect It](https://databunny.medium.com/inside-claude-code-the-session-file-format-and-how-to-inspect-it-b9998e66d56b) — technical breakdown of the JSONL session format, message types, subagent trees, and how lm-assist surfaces it all.
45
+ ### 1. Monitor
37
46
 
38
- ---
47
+ Real-time execution dashboard with live session tracking, cost analytics, and multi-machine fleet management.
39
48
 
40
- ## Three Core Features
49
+ <a href="https://langmart.ai/images/assist/session-browser.png"><img src="https://langmart.ai/images/assist/session-browser.png" alt="Session Browser — live sessions with cost and token tracking" width="700"></a>
41
50
 
42
- ### 1. Access Your Sessions From Anywhere
51
+ > *Browse all sessions with human-readable names, live status, per-model cost breakdown — from any browser, anywhere*
43
52
 
44
- lm-assist runs a web server on your local network. Open any browser on any device — laptop, tablet, phone — and browse all your Claude Code sessions in real time.
53
+ - Session list with human-readable slug names, live status, and running process detection
54
+ - Per-session and per-project cost tracking — total cost in gold at a glance
55
+ - Per-model token breakdown (input, output, cache read, cache creation) in Meta tab
56
+ - SSE event stream for real-time updates
57
+ - Multi-machine fleet dashboard via LangMart Hub
45
58
 
46
- <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/session-browsing.gif"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/session-browsing.gif" alt="Session Browsing" width="700"></a>
59
+ **Statusline** — optional status bar showing context %, rate limits (5h/7d usage with time remaining), session cost, RAM, PID, and uptime. Color-coded: green < 50%, yellow 50-80%, red > 80%.
47
60
 
48
- > *Terminal dashboard with 4 live sessions via langmart.ai, then browse into session detail with rich chat history — accessible from any browser, anywhere*
61
+ ```
62
+ wt: no worktrees ctx:42% $12.34 5h:23% 2h14m left 7d:41% ram:565M free:6.1G pid:12345 up:3h22m
63
+ ```
49
64
 
50
- ### 2. Deep Insight Views
65
+ **Key endpoints:** `GET /monitor/executions` · `GET /stream` · `GET /sessions` · `GET /projects/sessions`
51
66
 
52
- Every session gets a full breakdown across **15 specialized tabs** — Chat, Thinking, Agents, Skills, Commands, Tasks, Plans, Team, Files, Git, Console, Summary, Meta, JSON, and DB.
67
+ ### 2. Debug
53
68
 
54
- <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/deep-insight-views.gif"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/deep-insight-views.gif" alt="Deep Insight Views" width="700"></a>
69
+ 15 specialized views per session. Trace any decision through conversation flow, extended thinking, subagent hierarchy, tool calls, file changes, and git operations.
55
70
 
56
- > *Click through Chat, Agents, Plans, Files, Thinking, and Git tabs — each surfaces a different dimension of the session*
71
+ <table>
72
+ <tr>
73
+ <td><a href="https://langmart.ai/images/assist/agent-tree.png"><img src="https://langmart.ai/images/assist/agent-tree.png" alt="Agent Tree" width="340"></a><br><sub>Subagent hierarchy</sub></td>
74
+ <td><a href="https://langmart.ai/images/assist/plan-view.png"><img src="https://langmart.ai/images/assist/plan-view.png" alt="Plan View" width="340"></a><br><sub>Plan mode tracking</sub></td>
75
+ </tr>
76
+ <tr>
77
+ <td><a href="https://langmart.ai/images/assist/task-kanban.png"><img src="https://langmart.ai/images/assist/task-kanban.png" alt="Task Kanban" width="340"></a><br><sub>Task kanban board</sub></td>
78
+ <td><a href="https://langmart.ai/images/assist/team-view.png"><img src="https://langmart.ai/images/assist/team-view.png" alt="Team View" width="340"></a><br><sub>Multi-agent team coordination</sub></td>
79
+ </tr>
80
+ </table>
57
81
 
58
82
  <details>
59
83
  <summary><strong>All 15 tabs at a glance</strong></summary>
@@ -64,72 +88,83 @@ Every session gets a full breakdown across **15 specialized tabs** — Chat, Thi
64
88
  | **Thinking** | Claude's extended thinking / chain-of-thought |
65
89
  | **Agents** | Subagent tree — Explore, Plan, Bash, and custom agents |
66
90
  | **Skills** | Skill invocation timeline with chain flow, span attribution, and deep trace |
67
- | **Commands** | Slash command invocations (e.g., /trade-analyze) with args and timing |
68
- | **Tasks** | Todo lists created during the session |
91
+ | **Commands** | Slash command invocations with args and timing |
92
+ | **Tasks** | Task lists with dependency tracking |
69
93
  | **Plans** | Plan mode entries with approval status |
70
- | **Team** | Team/swarm coordination (Opus 4.6 multi-agent) |
94
+ | **Team** | Team/swarm coordination (multi-agent teams) |
71
95
  | **Files** | All files read, written, or edited during the session |
72
96
  | **Git** | Commits, pushes, and diffs from the session |
73
97
  | **Console** | Terminal output and process management |
74
98
  | **Summary** | AI-generated session summary |
75
- | **Meta** | Session metadata — timing, model, token usage |
99
+ | **Meta** | Session metadata — slug, timing, model, token usage |
76
100
  | **JSON** | Raw session JSONL data |
77
101
  | **DB** | Internal cache and index data |
78
102
 
79
103
  </details>
80
104
 
81
- ### 3. Auto-Built Knowledge Base
105
+ - Session DAG visualization (message graph + cross-session subagent/team graph)
106
+ - Fork tracking and branch visualization
107
+ - Tool call traces with full inputs and results
108
+
109
+ **Key endpoints:** `GET /sessions/:id` · `GET /sessions/:id/dag` · `GET /sessions/:id/subagents` · `GET /sessions/:id/conversation`
82
110
 
83
- lm-assist automatically generates knowledge from your Claude Code sessions, then injects it back into future prompts — giving Claude Code memory of what you've worked on before.
111
+ ### 3. Control
84
112
 
85
- <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/knowledge-base.gif"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/knowledge-base.gif" alt="Knowledge Base" width="700"></a>
113
+ Full runtime management API. Start, stop, and monitor agent executions from any device. Web terminal access to running Claude Code sessions.
86
114
 
87
- > *Browse 667 knowledge entries, expand details with code snippets and file references, inspect context injection logs showing exactly what knowledge gets injected into each prompt*
115
+ <a href="https://langmart.ai/images/assist/session-terminal.png"><img src="https://langmart.ai/images/assist/session-terminal.png" alt="Web Terminal control Claude Code from any browser" width="700"></a>
88
116
 
89
- **How it works:**
90
- 1. **Generate** — Analyzes your sessions and extracts reusable knowledge (patterns, decisions, debugging insights)
91
- 2. **Search** — Indexed with BM25 + vector similarity for fast retrieval
92
- 3. **Inject** — On every prompt, the context-injection hook finds relevant knowledge and injects it as context
93
- 4. **MCP tools** — Claude Code can also actively search and retrieve knowledge using `search`, `detail`, and `feedback` tools
117
+ > *Live terminal access to running Claude Code sessions — from any browser, anywhere*
94
118
 
95
- <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/context-injection-cli.png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/preview/context-injection-cli.png" alt="Context Injection in Claude Code CLI" width="700"></a>
119
+ - Start and abort agent executions via REST API
120
+ - Web terminal (ttyd) from any browser — control Claude Code remotely
121
+ - SDK runner for programmatic headless execution
122
+ - Session cache warm/clear for performance tuning
123
+ - Remote access via LangMart Hub — no VPN or port forwarding needed
96
124
 
97
- > *Claude Code CLI MCP tools search and inject knowledge before Claude responds*
125
+ **Key endpoints:** `POST /monitor/abort/:executionId` · `POST /ttyd/start` · `POST /agent/execute` · `POST /hub/connect`
98
126
 
99
127
  ### Settings
100
128
 
101
129
  <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/settings.png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshots/preview/settings.png" alt="Settings" width="700"></a>
102
130
 
103
- > *Settings — cloud sign-in, LAN access, connection status, and more*
131
+ > *Settings — connection status, Claude Code config, knowledge kill switch, and more*
104
132
 
105
133
  ### Mobile & Tablet Support
106
134
 
107
- The web UI is fully responsive. Access everything from your phone or tablet — control terminals, browse sessions, review knowledge, and manage tasks on the go.
135
+ The web UI is fully responsive. Monitor sessions, debug agents, and control terminals from your phone or tablet.
108
136
 
109
137
  <table>
110
138
  <tr>
111
139
  <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/session-terminal%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/session-terminal%20(mobile).png" alt="Terminal on mobile" width="180"></a><br><sub>Live Terminal</sub></td>
112
140
  <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/session-detail-chat%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/session-detail-chat%20(mobile).png" alt="Session detail on mobile" width="180"></a><br><sub>Session Detail</sub></td>
113
141
  <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/task-kanban%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/task-kanban%20(mobile).png" alt="Task kanban on mobile" width="180"></a><br><sub>Task Kanban</sub></td>
114
- <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/knowledge-list%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/knowledge-list%20(mobile).png" alt="Knowledge list on mobile" width="180"></a><br><sub>Knowledge Base</sub></td>
115
- </tr>
116
- <tr>
117
- <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/knowledge-detail-full%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/knowledge-detail-full%20(mobile).png" alt="Knowledge detail on mobile" width="180"></a><br><sub>Knowledge Detail</sub></td>
118
- <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/context-hook-logs%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/context-hook-logs%20(mobile).png" alt="Context hook logs on mobile" width="180"></a><br><sub>Context Injection Logs</sub></td>
119
142
  <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/settings-connection%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/settings-connection%20(mobile).png" alt="Settings on mobile" width="180"></a><br><sub>Settings</sub></td>
120
- <td align="center"><a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/settings-claude-code%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/settings-claude-code%20(mobile).png" alt="Claude Code settings on mobile" width="180"></a><br><sub>Claude Code Config</sub></td>
121
143
  </tr>
122
144
  </table>
123
145
 
124
- ### Bring Your Knowledge to Every IDE
146
+ ---
147
+
148
+ ## Data Sources
149
+
150
+ lm-assist reads the same JSONL session files regardless of how they were created:
151
+
152
+ | Source | What It Produces | lm-assist Coverage |
153
+ |--------|-----------------|-------------------|
154
+ | **Claude Code CLI** | Interactive sessions with subagents, teams, worktrees | Full parsing — all message types, tool calls, metadata |
155
+ | **Agent SDK** (Python/TypeScript) | Programmatic agent executions | Same JSONL format — full session inspection |
156
+ | **Headless mode** (`claude -p`) | Background/CI runs | Detected via process status store |
157
+ | **Running processes** | Live PID, tmux, terminal state | Real-time monitoring with zero polling overhead |
158
+
159
+ ---
125
160
 
126
- lm-assist builds knowledge from your Claude Code sessions — but that knowledge isn't locked to Claude Code. Any MCP-compatible IDE can connect to the lm-assist MCP server and access the same knowledge base: search entries, view details, and provide feedback.
161
+ ## Knowledge (Optional)
127
162
 
128
- One-click activation from the Settings page:
163
+ lm-assist includes an optional knowledge subsystem that auto-extracts reusable knowledge from your sessions and injects it into future prompts via MCP tools and a context hook. Enable or disable it at runtime from Settings — the kill switch unloads the embedder and vector store to save ~100MB of memory.
129
164
 
130
- <a href="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/settings-ide-mcp%20(mobile).png"><img src="https://raw.githubusercontent.com/langmartai/lm-assist/main/docs/screenshot/settings-ide-mcp%20(mobile).png" alt="IDE MCP Integration" width="280"></a>
165
+ > **Read:** [Your Claude Sessions Are Gold: Stop Paying Twice for the Same Knowledge](https://databunny.medium.com/your-claude-sessions-are-gold-stop-paying-twice-for-the-same-knowledge-7632ac6ddb88)
131
166
 
132
- **Supported IDEs:**
167
+ When enabled, any MCP-compatible IDE can access the knowledge base:
133
168
 
134
169
  | IDE | MCP Config |
135
170
  |-----|-----------|
@@ -139,9 +174,6 @@ One-click activation from the Settings page:
139
174
  | **Windsurf** | `~/.windsurf/mcp.json` |
140
175
  | **Codex CLI** (OpenAI) | `~/.codex/config.toml` |
141
176
  | **Gemini CLI** (Google) | `~/.gemini/settings.json` |
142
- | **Google Antigravity** | `~/.gemini/antigravity/settings.json` |
143
-
144
- All IDEs get access to the same 3 MCP tools (`search`, `detail`, `feedback`) and the same knowledge base. Generate knowledge once in Claude Code, use it everywhere.
145
177
 
146
178
  ---
147
179
 
@@ -153,12 +185,17 @@ All IDEs get access to the same 3 MCP tools (`search`, `detail`, `feedback`) and
153
185
  curl -fsSL https://raw.githubusercontent.com/langmartai/lm-assist/main/install.sh | bash
154
186
  ```
155
187
 
156
- This clones the repo, builds, adds the marketplace, and installs the plugin. Then **open a new Claude Code session** and run:
188
+ Then **open a new Claude Code session** and run `/assist-setup`.
157
189
 
158
- ```
159
- /assist-setup
190
+ ### Install via npm
191
+
192
+ ```bash
193
+ npm install -g lm-assist
194
+ lm-assist start
160
195
  ```
161
196
 
197
+ Then in Claude Code, run `/assist-setup`.
198
+
162
199
  ### Install from source
163
200
 
164
201
  ```bash
@@ -168,105 +205,185 @@ npm install && npm run build
168
205
  ./core.sh start
169
206
  ```
170
207
 
171
- Then in Claude Code, run `/plugin install .` to register the plugin. **Open a new Claude Code session** and run `/assist-setup`.
208
+ Then in Claude Code, run `/plugin install .` and `/assist-setup`.
172
209
 
173
- ### Install via npm
210
+ ### What gets installed
211
+
212
+ | Component | Auto-installed | Purpose |
213
+ |-----------|---------------|---------|
214
+ | Core API + Web UI | Yes (via npm/source) | 155+ endpoint REST API + Next.js dashboard |
215
+ | MCP server | Yes (via plugin) | `search`, `detail`, `feedback` tools |
216
+ | Context hook | Yes (via plugin) | Knowledge injection (optional) |
217
+ | Slash commands | Yes (via plugin) | 6 `/assist-*` commands |
218
+ | Skills | Yes (via plugin) | `observe` (auto-triggered observability) + `route` (cross-project routing) |
219
+ | Slash commands | Yes (via plugin) | 9 commands: `/sessions`, `/summary`, `/run` + 6 `/assist-*` |
220
+ | Statusline | Optional | Git branch, context %, rate limits, process stats |
221
+
222
+ ## Services
223
+
224
+ | Service | Port | Description |
225
+ |---------|------|-------------|
226
+ | Core API | 3100 | REST API — sessions, monitor, agents, tasks, knowledge |
227
+ | Web UI | 3848 | Next.js dashboard — 15 insight tabs, terminal, settings |
174
228
 
175
229
  ```bash
176
- npm install -g lm-assist
177
- lm-assist start
230
+ lm-assist start # Start both services
231
+ lm-assist stop # Stop all services
232
+ lm-assist status # Health check + process info
233
+ lm-assist upgrade # Upgrade to latest version
178
234
  ```
179
235
 
180
- Then in Claude Code, run `/assist-setup`.
236
+ ## Skills & Commands
181
237
 
182
- ### What gets installed
238
+ lm-assist ships with **2 auto-triggered skills** and **9 slash commands** that work inside Claude Code.
183
239
 
184
- | Component | Auto-installed by plugin | Purpose |
185
- |-----------|-------------------------|---------|
186
- | MCP server | Yes | `search`, `detail`, `feedback` tools in Claude Code |
187
- | Context hook (Node.js) | Yes | Injects relevant knowledge into each prompt |
188
- | Slash commands | Yes | 6 `/assist-*` commands |
189
- | Statusline | No (optional) | Git branch, context %, process stats in status bar |
240
+ ### Skills (auto-triggered)
190
241
 
191
- The context hook uses Node.js for cross-platform support (Windows, macOS, Linux). The statusline is optional install via `/assist-setup --statusline` or the web UI settings page.
242
+ Skills activate automatically when Claude detects relevant intentno slash command needed.
192
243
 
193
- ## Slash Commands
244
+ | Skill | Triggers on | What it does |
245
+ |-------|------------|--------------|
246
+ | **observe** | "what's running?", "session costs", "show subagents", "run this on project X" | Full observability — monitor sessions, debug agents, control executions, manage summaries |
247
+ | **route** | Prompt mentions another project's features or codebase | Cross-project routing — evaluates whether to stay, resume, fork, queue, or start new |
194
248
 
195
- Use these from within any Claude Code session:
249
+ ### Commands
196
250
 
197
251
  | Command | Description |
198
252
  |---------|-------------|
253
+ | `/sessions` | Session list with costs, turns, running status |
254
+ | `/summary` | Summarize current session, generate display name, record learning |
255
+ | `/run <prompt>` | Execute an agent with pre-flight checks |
199
256
  | `/assist` | Open the web UI in your browser |
200
257
  | `/assist-status` | Show status of all components |
201
258
  | `/assist-setup` | Start services and verify integrations |
202
- | `/assist-search <query>` | Search the knowledge base |
259
+ | `/assist-search` | Search the knowledge base |
203
260
  | `/assist-logs` | View context-inject hook logs |
204
261
  | `/assist-mcp-logs` | View MCP tool call logs |
205
262
 
206
- ## MCP Server
263
+ ### Use Cases with Examples
207
264
 
208
- The MCP server (`lm-assist`) provides 3 tools that any MCP-compatible IDE can use directly (Claude Code, VS Code, Cursor, Codex CLI, Gemini CLI, Antigravity):
265
+ **"What sessions are running and how much have they cost?"**
266
+ ```
267
+ > /sessions
268
+ Sessions (3 running, 415 total)
269
+ ───────────────────────────────────────────────────────────────────────
270
+ Status Name Project Model Cost Turns
271
+ ───────────────────────────────────────────────────────────────────────
272
+ [RUN] observability-platform-build lm-assist opus $307.66 1462
273
+ [RUN] trade-delta-analysis lm-unified-trade opus $153.20 822
274
+ [RUN] anti-kelly-system lm-unified-trade opus $35.49 433
275
+ two-track-dashboard lm-unified-trade opus $107.43 516
276
+ skill-validation-test lm-assist opus $0.63 11
277
+ ───────────────────────────────────────────────────────────────────────
278
+ Total cost: $604.41
279
+ ```
209
280
 
210
- | Tool | Description |
211
- |------|-------------|
212
- | `search` | Unified search across knowledge and file history |
213
- | `detail` | Progressive disclosure — expand any item by ID (e.g., `K001`, `arch:component`) |
214
- | `feedback` | Flag context as outdated, wrong, irrelevant, or useful |
281
+ **"Summarize what this session has been doing"**
282
+ ```
283
+ > /summary
284
+ Session Summary
285
+ ═══════════════
286
+ Name: observability-platform-build
287
+ Project: lm-assist
288
+ Turns: 1462 | Cost: $307.66
289
+ Status: in progress
290
+
291
+ What this session is about:
292
+ Building the lm-assist observability platform — session summaries,
293
+ cross-project routing, prompt queue, auto-learning.
294
+
295
+ What was accomplished:
296
+ • Session slug/customTitle parsing from Claude Code JSONL
297
+ • Knowledge system kill switch (saves ~100MB)
298
+ • Observability skill + routing skill + 3 new commands
299
+ • Persistent session summaries with delta tracking
300
+ • Universal prompt queue with source/target context
301
+ • Auto-learning signals that evolve routing over time
302
+ ```
215
303
 
216
- When installed as a plugin, the MCP server is registered automatically. For non-plugin installs:
304
+ **"Fix the delta analysis bug in the trading pipeline"**
217
305
 
218
- ```bash
219
- curl -X POST http://localhost:3100/claude-code/mcp/install
306
+ The route skill auto-detects this belongs to another project:
220
307
  ```
308
+ This task appears to belong to lm-unified-trade, not the current project.
221
309
 
222
- ## Services
310
+ Relevant session found: trade-delta-analysis
311
+ Summary: Implemented delta analysis mode for /trade-analyze command...
312
+ Status: idle (not running)
223
313
 
224
- lm-assist runs two services:
314
+ Recommendation: RESUME
315
+ Reason: This session built all existing delta modes and knows the spec,
316
+ flag table, and pre-launch copy patterns.
225
317
 
226
- | Service | Port | Description |
227
- |---------|------|-------------|
228
- | Core API | 3100 | REST API — sessions, knowledge, tasks |
229
- | Web UI | 3848 | Next.js dashboard — accessible from any device on your network |
318
+ To resume: claude --resume 36a30ba6-4bd1-4587-8bb3-c1d21a2ab616
319
+ ```
230
320
 
231
- ```bash
232
- ./core.sh start # Start both services
233
- ./core.sh stop # Stop all services
234
- ./core.sh restart # Restart (auto-rebuilds if TypeScript changed)
235
- ./core.sh status # Health check
236
- ./core.sh logs core # View API logs
237
- ./core.sh logs web # View web logs
321
+ **"Run a security review on this project"**
322
+ ```
323
+ > /run review all API endpoints for security vulnerabilities
324
+ Checking running executions... OK: none running.
325
+
326
+ Execution started: agent-1774468578687-1p2cnh
327
+ Session: nifty-wishing-boole
328
+ Status: running
329
+ Monitor with: /sessions
330
+ Web UI: http://localhost:3848
331
+ ```
332
+
333
+ **"What's the cost breakdown by project?"**
334
+
335
+ The observe skill activates:
336
+ ```
337
+ Project costs:
338
+ lm-assist $308.29 (80 sessions)
339
+ lm-unified-trade $892.15 (440 sessions)
340
+ LangMartDesign $45.20 (12 sessions)
341
+ tier-agent $23.50 (15 sessions)
342
+ ```
343
+
344
+ ### Session Intelligence
345
+
346
+ lm-assist learns from every interaction to route prompts smarter over time:
347
+
348
+ - **Session summaries** — LLM-generated descriptions stored with delta tracking. Updated incrementally as sessions grow.
349
+ - **Project summaries** — Comprehensive reference generated by agents that explore each project's CLAUDE.md, scripts, configs, and codebase.
350
+ - **Prompt queue** — When a session is busy, new work is queued with full context (original intent, formatted prompt, routing reason, context hint).
351
+ - **Auto-learning** — Keywords, commands, and routing patterns accumulate with frequency counts. After a few interactions, routing skips deep scans entirely.
352
+
353
+ ```
354
+ Learning context for lm-unified-trade:
355
+ Frequently mentioned: delta analysis(3x), anti-kelly(2x), regime analysis(1x)
356
+ Areas worked in: analysis pipeline(1x)
357
+ Routing patterns: delta analysis → trade-delta-analysis session
238
358
  ```
239
359
 
360
+ ## Key API Endpoints
361
+
362
+ | Category | Endpoints | Highlights |
363
+ |----------|-----------|------------|
364
+ | **Sessions** | 27 | List, detail, delta fetch, batch-check, conversation, subagents, forks, DAG |
365
+ | **Monitor** | 6 | Running executions, summary, abort, SSE stream |
366
+ | **Projects** | 12 | List projects, sessions per project, git info, worktree detection, costs |
367
+ | **Terminal** | 13 | ttyd start/stop/status, WebSocket proxy, tmux attach |
368
+ | **Tasks** | 22 | Task lists, aggregated tasks, ready tasks, dependency tracking |
369
+ | **Summaries** | 10 | Session summaries, project summaries, needs-update check |
370
+ | **Queue** | 10 | Prompt queue with source/target, priority, dispatch/complete lifecycle |
371
+ | **Learning** | 4 | Record signals, query by project, learning context generation |
372
+ | **Search** | 4 | Session content search, recent sessions, vector search |
373
+ | **Skills** | 9 | Skills analytics, chains, traces, per-session breakdown |
374
+ | **Knowledge** | 21 | List, search, generate, review (optional — can be disabled) |
375
+
376
+ All endpoints support `ifModifiedSince` for efficient polling. Session data supports three indexing dimensions: `lineIndex` (JSONL position), `turnIndex` (conversation turn), and `userPromptIndex` (user message count).
377
+
240
378
  ## Configuration
241
379
 
242
- No API key is needed — lm-assist works entirely with your local Claude Code session data. Optionally copy `.env.example` to `.env` to customize ports:
380
+ No API key needed — lm-assist works entirely with your local Claude Code session data. Optionally copy `.env.example` to `.env`:
243
381
 
244
382
  ```bash
245
383
  API_PORT=3100 # Core API port (default: 3100)
246
384
  WEB_PORT=3848 # Web UI port (default: 3848)
247
385
  ```
248
386
 
249
- ## Project Structure
250
-
251
- ```
252
- lm-assist/
253
- ├── core/ ← Backend API (TypeScript)
254
- │ ├── src/
255
- │ │ ├── mcp-server/ ← MCP server (search, detail, feedback tools)
256
- │ │ ├── routes/core/ ← REST API routes (155 endpoints)
257
- │ │ ├── knowledge/ ← Knowledge generation pipeline
258
- │ │ └── vector/ ← Embeddings + vector store
259
- │ └── hooks/ ← Claude Code hook scripts (Node.js, cross-platform)
260
- ├── web/ ← Web UI (Next.js, React 19)
261
- ├── commands/ ← Slash command definitions
262
- ├── hooks/ ← Plugin hook registration
263
- ├── docs/screenshots/ ← Product screenshots
264
- ├── .claude-plugin/ ← Claude Code plugin metadata
265
- ├── .mcp.json ← MCP server auto-registration
266
- ├── core.sh ← Service manager
267
- └── bin/lm-assist.js ← CLI entry point
268
- ```
269
-
270
387
  ## Platform Support
271
388
 
272
389
  | Platform | Support | Notes |
@@ -274,9 +391,14 @@ lm-assist/
274
391
  | Linux | Full | All features including web terminal |
275
392
  | macOS | Full | All features including web terminal |
276
393
  | Windows | Partial | Everything except console/terminal access (ttyd not available) |
277
- | Mobile / Tablet | Web UI | Browse sessions, tasks, knowledge from any device on your network |
394
+ | Mobile / Tablet | Web UI | Monitor, debug, and control from any device on your network |
395
+
396
+ ## Who It's For
278
397
 
279
- The web UI is fully responsiveoptimized for phone, tablet, and desktop viewports.
398
+ - **Solo developers** using Claude Codesee what's happening across all your sessions
399
+ - **Teams building with Agent SDK** — observability for your agent pipelines
400
+ - **DevOps managing agent fleets** — multi-machine dashboard, cost tracking, process management
401
+ - **AI product builders** — debug agent behavior with 15 insight views
280
402
 
281
403
  ## Changelog
282
404