atoo-studio 0.0.1 → 0.0.3

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 (408) hide show
  1. package/LICENSE +21 -0
  2. package/README.github.md +328 -0
  3. package/README.md +118 -0
  4. package/README.npm.md +118 -0
  5. package/bin/atoo-studio.js +90 -0
  6. package/dist/src/agents/claude-code-terminal/adapter.d.ts +42 -0
  7. package/dist/src/agents/claude-code-terminal/adapter.js +166 -0
  8. package/dist/src/agents/claude-code-terminal/index.d.ts +13 -0
  9. package/dist/src/agents/claude-code-terminal/index.js +45 -0
  10. package/dist/src/agents/claude-code-terminal/spawner.d.ts +9 -0
  11. package/dist/src/agents/claude-code-terminal/spawner.js +37 -0
  12. package/dist/src/agents/claude-code-terminal-chatro/adapter.d.ts +51 -0
  13. package/dist/src/agents/claude-code-terminal-chatro/adapter.js +301 -0
  14. package/dist/src/agents/claude-code-terminal-chatro/index.d.ts +13 -0
  15. package/dist/src/agents/claude-code-terminal-chatro/index.js +45 -0
  16. package/dist/src/agents/claude-code-terminal-chatro/jsonl-watcher.d.ts +67 -0
  17. package/dist/src/agents/claude-code-terminal-chatro/jsonl-watcher.js +431 -0
  18. package/dist/src/agents/claude-code-terminal-chatro/spawner.d.ts +9 -0
  19. package/dist/src/agents/claude-code-terminal-chatro/spawner.js +37 -0
  20. package/dist/src/agents/codex-terminal/adapter.d.ts +40 -0
  21. package/dist/src/agents/codex-terminal/adapter.js +160 -0
  22. package/dist/src/agents/codex-terminal/index.d.ts +13 -0
  23. package/dist/src/agents/codex-terminal/index.js +47 -0
  24. package/dist/src/agents/codex-terminal/spawner.d.ts +9 -0
  25. package/dist/src/agents/codex-terminal/spawner.js +56 -0
  26. package/dist/src/agents/codex-terminal-chatro/adapter.d.ts +58 -0
  27. package/dist/src/agents/codex-terminal-chatro/adapter.js +266 -0
  28. package/dist/src/agents/codex-terminal-chatro/index.d.ts +13 -0
  29. package/dist/src/agents/codex-terminal-chatro/index.js +50 -0
  30. package/dist/src/agents/codex-terminal-chatro/jsonl-watcher.d.ts +36 -0
  31. package/dist/src/agents/codex-terminal-chatro/jsonl-watcher.js +205 -0
  32. package/dist/src/agents/codex-terminal-chatro/spawner.d.ts +9 -0
  33. package/dist/src/agents/codex-terminal-chatro/spawner.js +57 -0
  34. package/dist/src/agents/lib/chain-builder.d.ts +21 -0
  35. package/dist/src/agents/lib/chain-builder.js +139 -0
  36. package/dist/src/agents/lib/claude/fs-sessions.d.ts +31 -0
  37. package/dist/src/agents/lib/claude/fs-sessions.js +329 -0
  38. package/dist/src/agents/lib/claude/jsonl-writer.d.ts +32 -0
  39. package/dist/src/agents/lib/claude/jsonl-writer.js +342 -0
  40. package/dist/src/agents/lib/claude/workspace-trust.d.ts +1 -0
  41. package/dist/src/agents/lib/claude/workspace-trust.js +29 -0
  42. package/dist/src/agents/lib/codex/fs-sessions.d.ts +34 -0
  43. package/dist/src/agents/lib/codex/fs-sessions.js +255 -0
  44. package/dist/src/agents/lib/codex/jsonl-mapper.d.ts +11 -0
  45. package/dist/src/agents/lib/codex/jsonl-mapper.js +154 -0
  46. package/dist/src/agents/lib/codex/jsonl-writer.d.ts +8 -0
  47. package/dist/src/agents/lib/codex/jsonl-writer.js +440 -0
  48. package/dist/src/agents/lib/fs-tracking.d.ts +36 -0
  49. package/dist/src/agents/lib/fs-tracking.js +109 -0
  50. package/dist/src/agents/lib/pty-activity-tracker.d.ts +37 -0
  51. package/dist/src/agents/lib/pty-activity-tracker.js +105 -0
  52. package/dist/src/agents/lib/session-id-utils.d.ts +46 -0
  53. package/dist/src/agents/lib/session-id-utils.js +147 -0
  54. package/dist/src/agents/lib/session-precreate.d.ts +17 -0
  55. package/dist/src/agents/lib/session-precreate.js +177 -0
  56. package/dist/src/agents/registry.d.ts +72 -0
  57. package/dist/src/agents/registry.js +337 -0
  58. package/dist/src/agents/types.d.ts +135 -0
  59. package/dist/src/agents/types.js +1 -0
  60. package/dist/src/auth/crypto-key.d.ts +6 -0
  61. package/dist/src/auth/crypto-key.js +45 -0
  62. package/dist/src/auth/middleware.d.ts +18 -0
  63. package/dist/src/auth/middleware.js +54 -0
  64. package/dist/src/auth/password.d.ts +2 -0
  65. package/dist/src/auth/password.js +12 -0
  66. package/dist/src/auth/session.d.ts +10 -0
  67. package/dist/src/auth/session.js +33 -0
  68. package/dist/src/auth/totp.d.ts +12 -0
  69. package/dist/src/auth/totp.js +61 -0
  70. package/dist/src/auth/webauthn.d.ts +6 -0
  71. package/dist/src/auth/webauthn.js +117 -0
  72. package/dist/src/config.d.ts +9 -0
  73. package/dist/src/config.js +15 -0
  74. package/dist/src/database/connection-manager.d.ts +25 -0
  75. package/dist/src/database/connection-manager.js +211 -0
  76. package/dist/src/database/discovery/container.d.ts +6 -0
  77. package/dist/src/database/discovery/container.js +226 -0
  78. package/dist/src/database/discovery/env-parser.d.ts +9 -0
  79. package/dist/src/database/discovery/env-parser.js +525 -0
  80. package/dist/src/database/discovery/local-files.d.ts +6 -0
  81. package/dist/src/database/discovery/local-files.js +58 -0
  82. package/dist/src/database/discovery/port-scan.d.ts +7 -0
  83. package/dist/src/database/discovery/port-scan.js +61 -0
  84. package/dist/src/database/drivers/cassandra.d.ts +12 -0
  85. package/dist/src/database/drivers/cassandra.js +91 -0
  86. package/dist/src/database/drivers/clickhouse.d.ts +11 -0
  87. package/dist/src/database/drivers/clickhouse.js +127 -0
  88. package/dist/src/database/drivers/elasticsearch.d.ts +12 -0
  89. package/dist/src/database/drivers/elasticsearch.js +169 -0
  90. package/dist/src/database/drivers/influxdb.d.ts +14 -0
  91. package/dist/src/database/drivers/influxdb.js +194 -0
  92. package/dist/src/database/drivers/memcached.d.ts +11 -0
  93. package/dist/src/database/drivers/memcached.js +117 -0
  94. package/dist/src/database/drivers/mongodb.d.ts +12 -0
  95. package/dist/src/database/drivers/mongodb.js +128 -0
  96. package/dist/src/database/drivers/mysql.d.ts +11 -0
  97. package/dist/src/database/drivers/mysql.js +112 -0
  98. package/dist/src/database/drivers/neo4j.d.ts +11 -0
  99. package/dist/src/database/drivers/neo4j.js +158 -0
  100. package/dist/src/database/drivers/postgresql.d.ts +11 -0
  101. package/dist/src/database/drivers/postgresql.js +133 -0
  102. package/dist/src/database/drivers/redis.d.ts +11 -0
  103. package/dist/src/database/drivers/redis.js +91 -0
  104. package/dist/src/database/drivers/sqlite.d.ts +10 -0
  105. package/dist/src/database/drivers/sqlite.js +100 -0
  106. package/dist/src/database/query-stream.d.ts +5 -0
  107. package/dist/src/database/query-stream.js +75 -0
  108. package/dist/src/database/types.d.ts +71 -0
  109. package/dist/src/database/types.js +1 -0
  110. package/dist/src/events/index.d.ts +3 -0
  111. package/dist/src/events/index.js +3 -0
  112. package/dist/src/events/types.d.ts +214 -0
  113. package/dist/src/events/types.js +22 -0
  114. package/dist/src/events/wire.d.ts +114 -0
  115. package/dist/src/events/wire.js +296 -0
  116. package/dist/src/fs-monitor-types.d.ts +24 -0
  117. package/dist/src/fs-monitor-types.js +1 -0
  118. package/dist/src/fs-monitor.d.ts +80 -0
  119. package/dist/src/fs-monitor.js +637 -0
  120. package/dist/src/handlers/auth.d.ts +1 -0
  121. package/dist/src/handlers/auth.js +170 -0
  122. package/dist/src/handlers/changes.d.ts +1 -0
  123. package/dist/src/handlers/changes.js +203 -0
  124. package/dist/src/handlers/containers.d.ts +12 -0
  125. package/dist/src/handlers/containers.js +379 -0
  126. package/dist/src/handlers/databases.d.ts +3 -0
  127. package/dist/src/handlers/databases.js +327 -0
  128. package/dist/src/handlers/environments.d.ts +3 -0
  129. package/dist/src/handlers/environments.js +286 -0
  130. package/dist/src/handlers/github.d.ts +1 -0
  131. package/dist/src/handlers/github.js +153 -0
  132. package/dist/src/handlers/projects.d.ts +1 -0
  133. package/dist/src/handlers/projects.js +895 -0
  134. package/dist/src/handlers/ssh.d.ts +1 -0
  135. package/dist/src/handlers/ssh.js +162 -0
  136. package/dist/src/handlers/users.d.ts +1 -0
  137. package/dist/src/handlers/users.js +195 -0
  138. package/dist/src/index.d.ts +1 -0
  139. package/dist/src/index.js +228 -0
  140. package/dist/src/mcp/config.d.ts +32 -0
  141. package/dist/src/mcp/config.js +227 -0
  142. package/dist/src/mcp/server.d.ts +1 -0
  143. package/dist/src/mcp/server.js +574 -0
  144. package/dist/src/serial/cuse-device.d.ts +19 -0
  145. package/dist/src/serial/cuse-device.js +260 -0
  146. package/dist/src/serial/manager.d.ts +63 -0
  147. package/dist/src/serial/manager.js +206 -0
  148. package/dist/src/serial/pty-pair.d.ts +16 -0
  149. package/dist/src/serial/pty-pair.js +68 -0
  150. package/dist/src/services/fs-browser.d.ts +14 -0
  151. package/dist/src/services/fs-browser.js +98 -0
  152. package/dist/src/services/git-ops.d.ts +86 -0
  153. package/dist/src/services/git-ops.js +317 -0
  154. package/dist/src/services/github-ops.d.ts +104 -0
  155. package/dist/src/services/github-ops.js +192 -0
  156. package/dist/src/services/obfuscation.d.ts +2 -0
  157. package/dist/src/services/obfuscation.js +16 -0
  158. package/dist/src/services/preview/headless-backend.d.ts +62 -0
  159. package/dist/src/services/preview/headless-backend.js +698 -0
  160. package/dist/src/services/preview/injected-scripts.d.ts +9 -0
  161. package/dist/src/services/preview/injected-scripts.js +232 -0
  162. package/dist/src/services/preview/preview-backend.d.ts +92 -0
  163. package/dist/src/services/preview/preview-backend.js +15 -0
  164. package/dist/src/services/preview/universal-setter.d.ts +7 -0
  165. package/dist/src/services/preview/universal-setter.js +46 -0
  166. package/dist/src/services/preview-manager.d.ts +50 -0
  167. package/dist/src/services/preview-manager.js +216 -0
  168. package/dist/src/services/project-watcher.d.ts +6 -0
  169. package/dist/src/services/project-watcher.js +307 -0
  170. package/dist/src/services/remote-fs-browser.d.ts +11 -0
  171. package/dist/src/services/remote-fs-browser.js +50 -0
  172. package/dist/src/services/remote-git-ops.d.ts +75 -0
  173. package/dist/src/services/remote-git-ops.js +218 -0
  174. package/dist/src/services/session-search.d.ts +56 -0
  175. package/dist/src/services/session-search.js +303 -0
  176. package/dist/src/services/ssh-manager.d.ts +44 -0
  177. package/dist/src/services/ssh-manager.js +358 -0
  178. package/dist/src/session-writer.d.ts +9 -0
  179. package/dist/src/session-writer.js +66 -0
  180. package/dist/src/spawner.d.ts +56 -0
  181. package/dist/src/spawner.js +135 -0
  182. package/dist/src/state/db.d.ts +214 -0
  183. package/dist/src/state/db.js +897 -0
  184. package/dist/src/state/store.d.ts +37 -0
  185. package/dist/src/state/store.js +108 -0
  186. package/dist/src/state/types.d.ts +13 -0
  187. package/dist/src/state/types.js +1 -0
  188. package/dist/src/web/devtools-proxy.d.ts +7 -0
  189. package/dist/src/web/devtools-proxy.js +176 -0
  190. package/dist/src/web/port-proxy.d.ts +15 -0
  191. package/dist/src/web/port-proxy.js +124 -0
  192. package/dist/src/web/preview-ws.d.ts +5 -0
  193. package/dist/src/web/preview-ws.js +207 -0
  194. package/dist/src/web/server.d.ts +6 -0
  195. package/dist/src/web/server.js +1694 -0
  196. package/dist/src/ws/agent-ws.d.ts +5 -0
  197. package/dist/src/ws/agent-ws.js +93 -0
  198. package/frontend/dist/assets/_basePickBy-BP5pqc-z.js +1 -0
  199. package/frontend/dist/assets/_baseUniq-C8JXpw9D.js +1 -0
  200. package/frontend/dist/assets/_createAssigner-ByDUqGii.js +1 -0
  201. package/frontend/dist/assets/abap-DuT-3z4x.js +1 -0
  202. package/frontend/dist/assets/addon-fit-CxQet2ja.js +1 -0
  203. package/frontend/dist/assets/addon-web-links-D_jRkPIl.js +1 -0
  204. package/frontend/dist/assets/apex-B-em86xX.js +1 -0
  205. package/frontend/dist/assets/api-SUPuHhSY.js +2 -0
  206. package/frontend/dist/assets/arc-Z0_eVteO.js +1 -0
  207. package/frontend/dist/assets/architecture-PBZL5I3N-Cm0ChR6S.js +1 -0
  208. package/frontend/dist/assets/architectureDiagram-2XIMDMQ5-C2jiEUuG.js +36 -0
  209. package/frontend/dist/assets/array-CwG8vNfn.js +1 -0
  210. package/frontend/dist/assets/auth-store-R7eW5SVu.js +1 -0
  211. package/frontend/dist/assets/azcli-Bg9wQloi.js +1 -0
  212. package/frontend/dist/assets/bat-BM46z99L.js +1 -0
  213. package/frontend/dist/assets/bicep-DcBsJUfh.js +2 -0
  214. package/frontend/dist/assets/blockDiagram-WCTKOSBZ-BwHBv5v8.js +132 -0
  215. package/frontend/dist/assets/c4Diagram-IC4MRINW-Ct7LjWFQ.js +10 -0
  216. package/frontend/dist/assets/cameligo-zw7JTtim.js +1 -0
  217. package/frontend/dist/assets/channel-ClCsE6HN.js +1 -0
  218. package/frontend/dist/assets/chunk-4BX2VUAB-zZ6P90VO.js +1 -0
  219. package/frontend/dist/assets/chunk-55IACEB6-DXllTDQl.js +1 -0
  220. package/frontend/dist/assets/chunk-7E7YKBS2-D0o-krG6.js +1 -0
  221. package/frontend/dist/assets/chunk-7R4GIKGN-Csst1274.js +80 -0
  222. package/frontend/dist/assets/chunk-C72U2L5F-BJHsZQ3s.js +1 -0
  223. package/frontend/dist/assets/chunk-CFjPhJqf.js +1 -0
  224. package/frontend/dist/assets/chunk-EGIJ26TM-IvGKaOpK.js +1 -0
  225. package/frontend/dist/assets/chunk-FMBD7UC4-DVR34RNb.js +15 -0
  226. package/frontend/dist/assets/chunk-GEFDOKGD-CnmN6cC8.js +2 -0
  227. package/frontend/dist/assets/chunk-JSJVCQXG-CWxHBzeJ.js +1 -0
  228. package/frontend/dist/assets/chunk-KX2RTZJC-DkRk56s7.js +1 -0
  229. package/frontend/dist/assets/chunk-KYZI473N-DCCsG2dK.js +53 -0
  230. package/frontend/dist/assets/chunk-L3YUKLVL-kj7gDLqb.js +1 -0
  231. package/frontend/dist/assets/chunk-MX3YWQON-OUdzv5sZ.js +1 -0
  232. package/frontend/dist/assets/chunk-NQ4KR5QH-BPLxW_0V.js +220 -0
  233. package/frontend/dist/assets/chunk-O4XLMI2P-BMLK6_ib.js +7 -0
  234. package/frontend/dist/assets/chunk-OZEHJAEY-BvePHeeD.js +1 -0
  235. package/frontend/dist/assets/chunk-PQ6SQG4A-evVHD3KM.js +1 -0
  236. package/frontend/dist/assets/chunk-PU5JKC2W-DPFTYuvl.js +70 -0
  237. package/frontend/dist/assets/chunk-QZHKN3VN-JRdddPvu.js +1 -0
  238. package/frontend/dist/assets/chunk-R5LLSJPH-N_kzZPYS.js +1 -0
  239. package/frontend/dist/assets/chunk-WL4C6EOR-CzQbiss9.js +189 -0
  240. package/frontend/dist/assets/chunk-XIRO2GV7-Z9gqatVF.js +1 -0
  241. package/frontend/dist/assets/chunk-XZSTWKYB-BddvqxDB.js +94 -0
  242. package/frontend/dist/assets/chunk-YBOYWFTD-BgKO1qAJ.js +1 -0
  243. package/frontend/dist/assets/classDiagram-VBA2DB6C-BUysImLJ.js +1 -0
  244. package/frontend/dist/assets/classDiagram-v2-RAHNMMFH-os3tUcXP.js +1 -0
  245. package/frontend/dist/assets/clojure-FspFoNNQ.js +1 -0
  246. package/frontend/dist/assets/clone-CjYMfESW.js +1 -0
  247. package/frontend/dist/assets/codicon-ngg6Pgfi.ttf +0 -0
  248. package/frontend/dist/assets/coffee-13n8Bk2W.js +1 -0
  249. package/frontend/dist/assets/cose-bilkent-S5V4N54A-zUOWQqLe.js +1 -0
  250. package/frontend/dist/assets/cpp-BVm2xGEs.js +1 -0
  251. package/frontend/dist/assets/csharp-D2kAWmUm.js +1 -0
  252. package/frontend/dist/assets/csp-Ezvgpf0e.js +1 -0
  253. package/frontend/dist/assets/css-CYxRwcFy.js +3 -0
  254. package/frontend/dist/assets/css.worker-Cd5h-ZOL.js +89 -0
  255. package/frontend/dist/assets/cssMode-CrXej49V.js +1 -0
  256. package/frontend/dist/assets/cypher-jg3SGErc.js +1 -0
  257. package/frontend/dist/assets/cytoscape.esm-kyyvzxNV.js +321 -0
  258. package/frontend/dist/assets/dagre-KLK3FWXG-BGhxKTrS.js +4 -0
  259. package/frontend/dist/assets/dagre-oxy3nsFM.js +1 -0
  260. package/frontend/dist/assets/dart-179jqhK4.js +1 -0
  261. package/frontend/dist/assets/defaultLocale-Dda4OpKy.js +1 -0
  262. package/frontend/dist/assets/diagram-E7M64L7V-DKevl205.js +24 -0
  263. package/frontend/dist/assets/diagram-IFDJBPK2-KQaESDDI.js +43 -0
  264. package/frontend/dist/assets/diagram-P4PSJMXO-BrpIvkQv.js +24 -0
  265. package/frontend/dist/assets/dist-CU_Nb1G5.js +1 -0
  266. package/frontend/dist/assets/dockerfile-CIAtSGxS.js +1 -0
  267. package/frontend/dist/assets/ecl-CGVKfDxD.js +1 -0
  268. package/frontend/dist/assets/editor-Br_kD0ds.css +1 -0
  269. package/frontend/dist/assets/editor.api2-YXkDn0Gm.js +872 -0
  270. package/frontend/dist/assets/editor.main-fBaXZjJ0.js +6 -0
  271. package/frontend/dist/assets/elixir-BZ-6w0y3.js +1 -0
  272. package/frontend/dist/assets/erDiagram-INFDFZHY-B_SO_zDO.js +70 -0
  273. package/frontend/dist/assets/flow9-CVuOjTMv.js +1 -0
  274. package/frontend/dist/assets/flowDiagram-PKNHOUZH-vCrwouWP.js +162 -0
  275. package/frontend/dist/assets/freemarker2-DM-pztJU.js +3 -0
  276. package/frontend/dist/assets/fsharp-q0pGJYr6.js +1 -0
  277. package/frontend/dist/assets/ganttDiagram-A5KZAMGK-Dnx3szD9.js +292 -0
  278. package/frontend/dist/assets/gitGraph-HDMCJU4V-CAmchn0S.js +1 -0
  279. package/frontend/dist/assets/gitGraphDiagram-K3NZZRJ6-BjsXnLlp.js +65 -0
  280. package/frontend/dist/assets/go-dzSPfdEO.js +1 -0
  281. package/frontend/dist/assets/graphlib-CXuPQLPN.js +1 -0
  282. package/frontend/dist/assets/graphql-CG4OUoEV.js +1 -0
  283. package/frontend/dist/assets/handlebars-BbK53Vec.js +1 -0
  284. package/frontend/dist/assets/hcl-Cy14JPk3.js +1 -0
  285. package/frontend/dist/assets/html-DYtTQNOG.js +1 -0
  286. package/frontend/dist/assets/html.worker-BjVEKLoU.js +502 -0
  287. package/frontend/dist/assets/htmlMode-C6GTouth.js +1 -0
  288. package/frontend/dist/assets/index-CJrelq5A.css +1 -0
  289. package/frontend/dist/assets/index-CvDkr5VR.js +157 -0
  290. package/frontend/dist/assets/info-3K5VOQVL-w0fuf3Vz.js +1 -0
  291. package/frontend/dist/assets/infoDiagram-LFFYTUFH-CyQQoy2i.js +2 -0
  292. package/frontend/dist/assets/ini-Pbg8HGVD.js +1 -0
  293. package/frontend/dist/assets/init-D6KNwrax.js +1 -0
  294. package/frontend/dist/assets/ishikawaDiagram-PHBUUO56-DyeLXKpu.js +70 -0
  295. package/frontend/dist/assets/java-BmVu6Qrl.js +1 -0
  296. package/frontend/dist/assets/javascript-PbfQEdcJ.js +1 -0
  297. package/frontend/dist/assets/journeyDiagram-4ABVD52K-4HyMd4R2.js +139 -0
  298. package/frontend/dist/assets/json.worker-DqU5Wxnl.js +58 -0
  299. package/frontend/dist/assets/jsonMode-CASsGppE.js +7 -0
  300. package/frontend/dist/assets/julia-3cGnieBq.js +1 -0
  301. package/frontend/dist/assets/kanban-definition-K7BYSVSG-BktdlC34.js +89 -0
  302. package/frontend/dist/assets/katex-CEw3x5bf.js +261 -0
  303. package/frontend/dist/assets/kotlin-BuWkVcfV.js +1 -0
  304. package/frontend/dist/assets/less-CJ_VPy2C.js +2 -0
  305. package/frontend/dist/assets/lexon-BygAuZPu.js +1 -0
  306. package/frontend/dist/assets/line-CA_wh_TY.js +1 -0
  307. package/frontend/dist/assets/linear-BAcLW45z.js +1 -0
  308. package/frontend/dist/assets/liquid-kz84dle6.js +1 -0
  309. package/frontend/dist/assets/lspLanguageFeatures-C7hAHFn1.js +4 -0
  310. package/frontend/dist/assets/lua-C8Xs3dCx.js +1 -0
  311. package/frontend/dist/assets/m3-DTJeKBk4.js +1 -0
  312. package/frontend/dist/assets/markdown-QCgx8JqZ.js +1 -0
  313. package/frontend/dist/assets/math-D0YcMJAn.js +1 -0
  314. package/frontend/dist/assets/mdx-yRw0ap-E.js +1 -0
  315. package/frontend/dist/assets/mermaid-parser.core-CLD6OoQN.js +4 -0
  316. package/frontend/dist/assets/mindmap-definition-YRQLILUH-WGZwfAjA.js +68 -0
  317. package/frontend/dist/assets/mips-DopWaYgE.js +1 -0
  318. package/frontend/dist/assets/monaco.contribution-DeY0Qei-.js +2 -0
  319. package/frontend/dist/assets/msdax-BDis4ARV.js +1 -0
  320. package/frontend/dist/assets/mysql-BV6MLsOI.js +1 -0
  321. package/frontend/dist/assets/objective-c-B1UuzKs6.js +1 -0
  322. package/frontend/dist/assets/ordinal-jM7S0YHN.js +1 -0
  323. package/frontend/dist/assets/packet-RMMSAZCW-BziBZLJ6.js +1 -0
  324. package/frontend/dist/assets/pascal-BkvESCrc.js +1 -0
  325. package/frontend/dist/assets/pascaligo-lTy0kZYr.js +1 -0
  326. package/frontend/dist/assets/path-DNPd7Py7.js +1 -0
  327. package/frontend/dist/assets/perl-CrtUPXLV.js +1 -0
  328. package/frontend/dist/assets/pgsql-B9IbNWx2.js +1 -0
  329. package/frontend/dist/assets/php-CXvQBY2p.js +1 -0
  330. package/frontend/dist/assets/pie-UPGHQEXC-vv-0ECOa.js +1 -0
  331. package/frontend/dist/assets/pieDiagram-SKSYHLDU-8bBf71Ue.js +30 -0
  332. package/frontend/dist/assets/pla-DxBxuqWu.js +1 -0
  333. package/frontend/dist/assets/postiats-OkEuT5YF.js +1 -0
  334. package/frontend/dist/assets/powerquery-CMx5Tq4K.js +1 -0
  335. package/frontend/dist/assets/powershell-CstRxrEc.js +1 -0
  336. package/frontend/dist/assets/preload-helper-D4M6sveU.js +1 -0
  337. package/frontend/dist/assets/protobuf-Bx0Z-uRj.js +2 -0
  338. package/frontend/dist/assets/pug--W8vanWl.js +1 -0
  339. package/frontend/dist/assets/python-DA0rnlw3.js +1 -0
  340. package/frontend/dist/assets/qsharp-CRtr0YbN.js +1 -0
  341. package/frontend/dist/assets/quadrantDiagram-337W2JSQ-B3n3IUhC.js +7 -0
  342. package/frontend/dist/assets/r-C6E1d6iv.js +1 -0
  343. package/frontend/dist/assets/radar-KQ55EAFF-fJ4cC2Bt.js +1 -0
  344. package/frontend/dist/assets/razor-yd73uata.js +1 -0
  345. package/frontend/dist/assets/redis-Dx13voP3.js +1 -0
  346. package/frontend/dist/assets/redshift-D66HwlyV.js +1 -0
  347. package/frontend/dist/assets/requirementDiagram-Z7DCOOCP-EQHcxLB0.js +73 -0
  348. package/frontend/dist/assets/restructuredtext-DQT2NKJ2.js +1 -0
  349. package/frontend/dist/assets/rough.esm-DxAX5Vpo.js +1 -0
  350. package/frontend/dist/assets/ruby-iFXI8hwH.js +1 -0
  351. package/frontend/dist/assets/rust-CSKiei34.js +1 -0
  352. package/frontend/dist/assets/sankeyDiagram-WA2Y5GQK-RDx6Bd-B.js +10 -0
  353. package/frontend/dist/assets/sb-Bo3ttdP2.js +1 -0
  354. package/frontend/dist/assets/scala-BC1D-Nxp.js +1 -0
  355. package/frontend/dist/assets/scheme-Z4OAo4Lv.js +1 -0
  356. package/frontend/dist/assets/scss-BvrdPs6B.js +3 -0
  357. package/frontend/dist/assets/sequenceDiagram-2WXFIKYE-BuXA25IP.js +145 -0
  358. package/frontend/dist/assets/shell-Bh_aCyF-.js +1 -0
  359. package/frontend/dist/assets/solidity-CWHj6tSe.js +1 -0
  360. package/frontend/dist/assets/sophia-raoNtKtm.js +1 -0
  361. package/frontend/dist/assets/sparql-XzmoGnue.js +1 -0
  362. package/frontend/dist/assets/sql-BD0i9Gvg.js +1 -0
  363. package/frontend/dist/assets/src-Bn-kKzs7.js +1 -0
  364. package/frontend/dist/assets/st-DtVKyms6.js +1 -0
  365. package/frontend/dist/assets/stateDiagram-RAJIS63D-ddkAWKhI.js +1 -0
  366. package/frontend/dist/assets/stateDiagram-v2-FVOUBMTO-BLVAwlfX.js +1 -0
  367. package/frontend/dist/assets/swift--UZs77wT.js +1 -0
  368. package/frontend/dist/assets/systemverilog-CDnBSWUd.js +1 -0
  369. package/frontend/dist/assets/tcl-DdCEuTHZ.js +1 -0
  370. package/frontend/dist/assets/timeline-definition-YZTLITO2-BnatPBR5.js +61 -0
  371. package/frontend/dist/assets/treemap-KZPCXAKY-FonqU4zC.js +1 -0
  372. package/frontend/dist/assets/ts.worker-DyPAEIuH.js +67719 -0
  373. package/frontend/dist/assets/tsMode-iuvyEpyO.js +11 -0
  374. package/frontend/dist/assets/twig-SSL-Altf.js +1 -0
  375. package/frontend/dist/assets/typescript-17918Hud.js +1 -0
  376. package/frontend/dist/assets/typespec-BT7S0ETg.js +1 -0
  377. package/frontend/dist/assets/vb-CrIgucua.js +1 -0
  378. package/frontend/dist/assets/vennDiagram-LZ73GAT5-C6g8XU-E.js +34 -0
  379. package/frontend/dist/assets/wgsl-BeKc3oEp.js +298 -0
  380. package/frontend/dist/assets/workers-DTfwKVoM.js +1 -0
  381. package/frontend/dist/assets/xml-CBMr_Wbw.js +1 -0
  382. package/frontend/dist/assets/xterm-BrP-ENHg.css +1 -0
  383. package/frontend/dist/assets/xterm-CBX2m0YM.js +36 -0
  384. package/frontend/dist/assets/xychartDiagram-JWTSCODW-BEz425ew.js +7 -0
  385. package/frontend/dist/assets/yaml-CTjCH7Bv.js +1 -0
  386. package/frontend/dist/fonts/inter-300.ttf +0 -0
  387. package/frontend/dist/fonts/inter-400.ttf +0 -0
  388. package/frontend/dist/fonts/inter-500.ttf +0 -0
  389. package/frontend/dist/fonts/inter-600.ttf +0 -0
  390. package/frontend/dist/fonts/inter-700.ttf +0 -0
  391. package/frontend/dist/index.html +49 -0
  392. package/frontend/dist/logo_192x192.png +0 -0
  393. package/frontend/dist/logo_32x32.png +0 -0
  394. package/frontend/dist/logo_512x512.png +0 -0
  395. package/frontend/dist/logo_64x64.png +0 -0
  396. package/frontend/dist/logobg_192x192.png +0 -0
  397. package/frontend/dist/logobg_512x512.png +0 -0
  398. package/frontend/dist/logobg_64x64.png +0 -0
  399. package/frontend/dist/manifest.json +25 -0
  400. package/frontend/dist/sw.js +22 -0
  401. package/package.json +74 -7
  402. package/preload/Makefile +12 -0
  403. package/preload/atoo-studio-preload.c +647 -0
  404. package/preload/atoo-studio-preload.so +0 -0
  405. package/setup-cuse.sh +260 -0
  406. package/setup.sh +81 -0
  407. package/src/serial/native/binding.gyp +10 -0
  408. package/src/serial/native/pty_pair.c +222 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Markus Furtlehner
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.
@@ -0,0 +1,328 @@
1
+ <p align="center">
2
+ <img src="https://atoo.ai/img/logo_64x64.png" alt="Atoo Studio" width="64" height="64">
3
+ </p>
4
+
5
+ <h1 align="center">Atoo Studio</h1>
6
+
7
+ <p align="center">
8
+ <strong>Local-first workspace for Claude Code, Codex CLI, and other coding agents.</strong><br>
9
+ Run multiple agents across projects and worktrees, fork and chain sessions, preview apps with real Chrome + DevTools, and manage Git, GitHub, databases, containers, and hardware from one browser UI.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <img src="https://img.shields.io/badge/status-early%20alpha-orange" alt="Early Alpha">
14
+ </p>
15
+
16
+ <p align="center">
17
+ <a href="https://atoo.ai">Website</a> ·
18
+ <a href="#demo">Demo</a> ·
19
+ <a href="#getting-started">Getting Started</a> ·
20
+ <a href="#core-capabilities">Core Capabilities</a> ·
21
+ <a href="#platform-support">Platform Support</a>
22
+ </p>
23
+
24
+ <p align="center">
25
+ Built by <a href="https://github.com/markusfurtlehner">Markus Furtlehner</a> ·
26
+ <a href="https://www.ittrail.at">IT Trail GmbH</a>
27
+ </p>
28
+
29
+ ---
30
+
31
+ ## Demo
32
+
33
+ <table align="center">
34
+ <tr>
35
+ <td align="center"><img src="demoassets/layout-21-9.png" alt="Atoo Studio on an ultrawide display" width="820"></td>
36
+ </tr>
37
+ <tr>
38
+ <td align="center"><sub>Ultrawide (21:9) — the full workspace with agent sessions, file tree, editor, and live app preview side by side.</sub></td>
39
+ </tr>
40
+ </table>
41
+
42
+ <table align="center">
43
+ <tr>
44
+ <td align="center"><img src="demoassets/layout-16-9.png" alt="Atoo Studio on a standard display" width="560"></td>
45
+ <td align="center"><img src="demoassets/mobile-mockup-portrait.jpg" alt="Atoo Studio on mobile" width="225"></td>
46
+ </tr>
47
+ <tr>
48
+ <td align="center"><sub>Standard (16:9) — collapsible sidebars keep the full workspace usable, including the live app preview.</sub></td>
49
+ <td align="center"><sub>Mobile — a dedicated layout with all features accessible on any phone or tablet.</sub></td>
50
+ </tr>
51
+ </table>
52
+
53
+ <table align="center">
54
+ <tr>
55
+ <td align="center"><img src="demoassets/atoo-studio-carousel-mode.gif" alt="Atoo Studio carousel mode" width="420"></td>
56
+ </tr>
57
+ <tr>
58
+ <td align="center"><sub>Experimental carousel view — a 2D panel layout where the active view follows mouse movement automatically.</sub></td>
59
+ </tr>
60
+ </table>
61
+
62
+ ## What is Atoo Studio?
63
+
64
+ Atoo Studio is a browser-based control room for working with coding agents like **Claude Code** and **Codex CLI**.
65
+
66
+ It does not replace your editor or your agent. It gives them a shared environment: agent sessions, code, live preview, DevTools, Git, GitHub, databases, containers, and even hardware access in one place.
67
+
68
+ Run it locally on Linux, macOS, or WSL as a local web server. No cloud dependency. No vendor lock-in.
69
+
70
+ ## Why it exists
71
+
72
+ Coding agents are great at focused tasks. The chaos starts around them.
73
+
74
+ Once you work across multiple projects, worktrees, terminals, dev servers, browser tabs, and agent sessions, the workflow breaks down fast. You lose context, you lose overview, and you spend too much time managing the environment instead of shipping.
75
+
76
+ Atoo Studio was built from that exact pain: creating a workspace that actually matches how agent-driven development works in practice.
77
+
78
+ ## Core capabilities
79
+
80
+ ### Agent workflows
81
+
82
+ - Run multiple coding agents in parallel across isolated projects and worktrees.
83
+ - Each agent runs in a real PTY session with full terminal capabilities.
84
+ - Fork sessions to explore alternative approaches without losing the original context.
85
+ - Chain sessions across agents, so you can start with Claude Code and continue with Codex using the same conversation history.
86
+ - Search session history via MCP so agents can reuse past decisions, failed attempts, and implementation context.
87
+ - Set session names, descriptions, and tags for better navigation and recall.
88
+ - Track project-level changes so you always know what has been done, by which session, and when.
89
+
90
+ ### Preview and debugging
91
+
92
+ - Built-in app preview powered by headless Chrome and the Chrome DevTools Protocol.
93
+ - Pixel-streamed preview, not iframes, so there are no cross-origin limitations.
94
+ - Open Chrome DevTools directly inside the workspace.
95
+ - Request trusted HTTPS certificates from the built-in CA for local testing.
96
+ - Test responsive layouts with device presets, custom viewports, zoom, rotation, and touch emulation.
97
+
98
+ ### Git and GitHub workflow
99
+
100
+ - Browse issues and pull requests, view comments, and open or update PRs from the GitHub panel.
101
+ - Link sessions to issues or pull requests for better task context.
102
+ - Inspect branches, commit history, stashes, and diffs from the Git panel.
103
+ - Work with multiple Git worktrees side by side as separate projects.
104
+ - Use the one-click **Publish** flow to commit, push, and open a PR.
105
+
106
+ ### Data, infrastructure, and devices
107
+
108
+ - Explore 15 database types including PostgreSQL, MySQL, SQLite, Redis, MongoDB, Elasticsearch, ClickHouse, CockroachDB, Cassandra, Neo4j, and InfluxDB.
109
+ - Auto-discover database connections from `docker-compose` files, environment variables, and port scanning.
110
+ - Manage Docker, Podman, and LXC containers from the workspace.
111
+ - Browse container images, networks, volumes, compose projects, logs, and stats.
112
+ - Connect real hardware like ESP32 boards through Web Serial, bridged to a virtual PTY so agents can flash firmware and monitor output.
113
+
114
+ ### Workspace experience
115
+
116
+ - File explorer and editor with source, diff, rendered, and hex views.
117
+ - Integrated terminal tabs running directly on the server.
118
+ - Built-in reverse proxy with subdomain and path-based routing.
119
+ - Optional authentication with password, TOTP, and WebAuthn/passkeys.
120
+ - Real-time shared workspace views across multiple browsers.
121
+ - Responsive mobile layout for monitoring and control on the go.
122
+ - Installable as a desktop app via PWA.
123
+
124
+ ## Platform support
125
+
126
+ | Capability | Linux | macOS | Native Windows |
127
+ |------------|-------|-------|----------------|
128
+ | Core workspace (agents, terminal, git, files) | Yes | Yes | No |
129
+ | Browser preview (CDP streaming) | Yes | Yes | - |
130
+ | Serial devices (PTY bridge) | Yes | Yes | - |
131
+ | Serial control signals (DTR/RTS via CUSE) | Yes | No | - |
132
+
133
+ **Native Windows is not supported. Use WSL instead.**
134
+
135
+ **macOS support is completely untested at this time.** It should work in principle, but expect rough edges.
136
+
137
+ ## Getting started
138
+
139
+ ### Requirements
140
+
141
+ **Required**
142
+ - Node.js 18+
143
+ - Git
144
+ - Linux, macOS, or WSL
145
+
146
+ **Optional dependencies**
147
+
148
+ | Dependency | Enables |
149
+ |------------|---------|
150
+ | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude`) | Claude Code agent support |
151
+ | [Codex CLI](https://github.com/openai/codex) (`codex`) | Codex agent support |
152
+ | [GitHub CLI](https://cli.github.com/) (`gh`) | GitHub issues and PR integration |
153
+ | `docker`, `podman`, or `lxc` | Container management |
154
+ | `ffmpeg` | Screen recording |
155
+ | Chrome libraries on Linux | Browser preview |
156
+ | CUSE on Linux | Serial control signals (DTR/RTS) |
157
+
158
+ Missing optional dependencies are reported as warnings on startup.
159
+
160
+ ### Quick start
161
+
162
+ ```bash
163
+ npx atoo-studio
164
+ ```
165
+
166
+ Then open `https://localhost:3010` in your browser.
167
+
168
+ To use a different port, set the `ATOO_PORT` environment variable:
169
+
170
+ ```bash
171
+ ATOO_PORT=4000 npx atoo-studio
172
+ ```
173
+
174
+ ### Docker
175
+
176
+ ```bash
177
+ docker run -p 3010:3010 ghcr.io/atooai/atoo-studio
178
+ ```
179
+
180
+ To persist data across container restarts:
181
+
182
+ ```bash
183
+ docker run -p 3010:3010 -v atoo-data:/home/atoo/.atoo-studio ghcr.io/atooai/atoo-studio
184
+ ```
185
+
186
+ ### LXC / LXD
187
+
188
+ Download the LXC image from the [latest release](https://github.com/atooai/atoo-studio/releases) and import it:
189
+
190
+ ```bash
191
+ lxc image import atoo-studio-lxc-amd64.tar.gz --alias atoo-studio
192
+ lxc launch atoo-studio my-atoo-studio
193
+ ```
194
+
195
+ ### Proxmox (experimental)
196
+
197
+ Run one of the setup scripts on your Proxmox host:
198
+
199
+ **LXC container** — lightweight, 2 CPU / 2 GB RAM / 20 GB disk
200
+
201
+ ```bash
202
+ bash -c "$(curl -fsSL https://raw.githubusercontent.com/atooai/atoo-studio/main/proxmox/lxc.sh)"
203
+ ```
204
+
205
+ **VM** — stronger isolation, CUSE/serial support, 4 CPU / 4 GB RAM / 50 GB disk
206
+
207
+ ```bash
208
+ bash -c "$(curl -fsSL https://raw.githubusercontent.com/atooai/atoo-studio/main/proxmox/vm.sh)"
209
+ ```
210
+
211
+ Both scripts prompt for container or VM ID, hostname, storage, and resources with sensible defaults.
212
+
213
+ ### Linux setup
214
+
215
+ To enable browser preview and screen recording support:
216
+
217
+ ```bash
218
+ sudo ./setup.sh
219
+ ```
220
+
221
+ To enable CUSE for serial control signals like DTR/RTS:
222
+
223
+ ```bash
224
+ sudo ./setup-cuse.sh
225
+ ```
226
+
227
+ `setup.sh` supports `apt-get` (Debian/Ubuntu), `dnf` (Fedora/RHEL), and `pacman` (Arch).
228
+
229
+ `setup-cuse.sh` builds the native CUSE helper, loads the kernel module, and configures permissions. Check the script header for container-specific notes for Docker or LXC.
230
+
231
+ ### macOS setup
232
+
233
+ No additional setup is required for core functionality.
234
+
235
+ For screen recording support, install `ffmpeg` via the setup script:
236
+
237
+ ```bash
238
+ ./setup.sh
239
+ ```
240
+
241
+ CUSE is not available on macOS, so serial control signals like DTR/RTS are not supported. When flashing boards such as ESP32, use the **BOOT** button manually.
242
+
243
+ ## Architecture
244
+
245
+ Atoo Studio runs as a single local backend process on the same machine or server as your coding agents.
246
+
247
+ ```text
248
+ Browser (any device)
249
+
250
+ │ WebSocket + HTTP
251
+
252
+ Atoo Studio Backend
253
+
254
+ ├── Agent adapters (Claude Code, Codex)
255
+ ├── PTY session manager
256
+ ├── Session chain & fork system
257
+ ├── Project & worktree manager
258
+ ├── Git & GitHub integration
259
+ ├── Database explorer
260
+ ├── Container manager (Docker, Podman, LXC)
261
+ ├── Reverse proxy with service registry
262
+ ├── CDP preview (headless Chrome)
263
+ ├── Certificate authority
264
+ ├── Serial device bridge
265
+ ├── Authentication system
266
+ └── MCP server
267
+ ```
268
+
269
+ Agents run inside real terminal sessions. Atoo Studio does not replace the agent — it provides the environment where agents operate.
270
+
271
+ ## MCP integration
272
+
273
+ Atoo Studio exposes MCP tools that let agents talk back to the workspace UI.
274
+
275
+ | Tool | Description |
276
+ |------|-------------|
277
+ | `generate_certificate` | Request a trusted HTTPS certificate for any hostname |
278
+ | `report_tcp_services` | Report started services so they appear in the preview panel |
279
+ | `request_serial_device` | Request USB serial device access via the Web Serial bridge |
280
+ | `search_session_history` | Search across all session history or within the current session chain |
281
+ | `suggest_continue_in_other_session` | Suggest switching to an existing session with relevant context |
282
+ | `open_file` | Open a file in the browser editor with user approval |
283
+ | `get_session_metadata` | Read session name, description, and tags |
284
+ | `set_session_metadata` | Set session name, description, and tags |
285
+ | `github_issue_pr_changed` | Notify the UI when a GitHub issue or PR changes |
286
+ | `connect_database` | Open the database explorer with a specific connection |
287
+ | `track_project_changes` | Track what has been done in a project (get/set/delete) |
288
+
289
+ ## Commercial support
290
+
291
+ Need help building agent tooling, multi-agent workflows, local-first developer environments, or custom integrations around Claude Code and Codex?
292
+
293
+ Commercial support and consulting are available via [IT Trail GmbH](https://www.ittrail.at).
294
+
295
+ ## Status
296
+
297
+ Atoo Studio is in **early alpha**. It is used for real day-to-day development across multiple projects and worktrees, but APIs, configuration, and UI may change without notice.
298
+
299
+ Bug reports and feedback are welcome.
300
+
301
+ ## Roadmap
302
+
303
+ - [ ] Add Gemini CLI as a third supported agent
304
+ - [ ] Standalone Electron app with real browser sessions for preview (in addition to headless CDP streaming)
305
+ - [ ] Refine mobile layout and bring all recently added features to the mobile view
306
+ - [ ] Self-hosted Git platform support: Gitea, GitLab, and Azure DevOps Server
307
+ - [ ] Evaluate cloud platforms for native management (containers, databases, infrastructure)
308
+ - [ ] Experiment with alternative workspace layouts
309
+ - [ ] Optional per-project development containers
310
+ - [ ] Replace xterm.js with atoo-term (currently in development)
311
+
312
+ ## Feedback
313
+
314
+ Atoo Studio is not accepting code contributions at this stage. The architecture is evolving quickly and external PRs would likely conflict with ongoing changes.
315
+
316
+ Bug reports, feature ideas, and workflow pain points are very welcome — please open an issue.
317
+
318
+ ## License
319
+
320
+ [MIT](LICENSE)
321
+
322
+ ## Author
323
+
324
+ Built by [Markus Furtlehner](https://github.com/markusfurtlehner) — founder of [IT Trail GmbH](https://www.ittrail.at).
325
+
326
+ Built from real pain, not a pitch deck.
327
+
328
+ > [atoo.ai](https://atoo.ai)
package/README.md ADDED
@@ -0,0 +1,118 @@
1
+ # Atoo Studio
2
+
3
+ **Agentic Development Environment** — A workspace where coding agents build, run and debug real systems.
4
+
5
+ Atoo Studio is a browser-based development environment for working with coding agents like Claude Code and Codex CLI. It brings agents, code, preview, DevTools, Git, GitHub, databases and hardware devices into one workspace.
6
+
7
+ Runs on Linux, macOS or WSL as a local web server. No cloud dependency, no vendor lock-in.
8
+
9
+ ## Quick Start
10
+
11
+ ```bash
12
+ npx atoo-studio
13
+ ```
14
+
15
+ Then open `https://localhost:3010` in your browser.
16
+
17
+ To use a different port:
18
+
19
+ ```bash
20
+ ATOO_PORT=4000 npx atoo-studio
21
+ ```
22
+
23
+ ## Install Globally
24
+
25
+ ```bash
26
+ npm install -g atoo-studio
27
+ atoo-studio
28
+ ```
29
+
30
+ ## Docker
31
+
32
+ ```bash
33
+ docker run -p 3010:3010 ghcr.io/atooai/atoo-studio
34
+ ```
35
+
36
+ ## Features
37
+
38
+ - **Multi-agent workflows** — Run Claude Code, Codex CLI and more in parallel across projects and worktrees
39
+ - **Session forking & chaining** — Chain sessions across agents, search history via MCP
40
+ - **Project changes tracking** — Know what was done, by which session, and when
41
+ - **App preview** — Live preview via headless Chrome (CDP pixel streaming), with DevTools and responsive testing
42
+ - **GitHub integration** — Issues, PRs, comments, labels — all from the workspace
43
+ - **Git integration** — Branches, commits, worktrees, stash, diff views, one-click publish
44
+ - **Database explorer** — 15+ database types with specialized views (PostgreSQL, MySQL, SQLite, Redis, MongoDB, Neo4j, InfluxDB, and more)
45
+ - **Container management** — Docker, Podman, and LXC containers
46
+ - **File editor** — Source, diff, rendered, and hex views with drag-and-drop
47
+ - **Serial devices** — Flash ESP32 and Arduino boards through the browser via Web Serial
48
+ - **Terminal** — Multiple PTY sessions with full terminal capabilities
49
+ - **Reverse proxy** — Subdomain and path-based routing with automatic service detection
50
+ - **Authentication** — Password, TOTP, and WebAuthn/passkey support
51
+ - **HTTPS** — Built-in certificate authority trusted by the preview browser
52
+ - **Mobile layout** — Responsive UI with swipe gestures
53
+ - **PWA** — Installable as a desktop app
54
+
55
+ ## Requirements
56
+
57
+ - Node.js 18+
58
+ - Linux, macOS or WSL
59
+ - git
60
+
61
+ ### Optional dependencies
62
+
63
+ | Dependency | Feature |
64
+ |------------|---------|
65
+ | `claude` (Claude Code) | Claude Code agent |
66
+ | `codex` (Codex CLI) | Codex agent |
67
+ | `gh` (GitHub CLI) | GitHub integration |
68
+ | docker / podman / lxc | Container management |
69
+ | ffmpeg | Screen recording |
70
+
71
+ Missing dependencies are reported as warnings on startup.
72
+
73
+ ### Linux setup
74
+
75
+ ```bash
76
+ # Install Chrome/Puppeteer dependencies and ffmpeg
77
+ sudo ./setup.sh
78
+
79
+ # Optional: Serial control signals (DTR/RTS) for device flashing
80
+ sudo ./setup-cuse.sh
81
+ ```
82
+
83
+ ### macOS setup
84
+
85
+ ```bash
86
+ # Install ffmpeg for screen recording (optional)
87
+ ./setup.sh
88
+ ```
89
+
90
+ ## Platform Support
91
+
92
+ | Feature | Linux | macOS | Windows |
93
+ |---------|-------|-------|---------|
94
+ | Core (agents, terminal, git, files) | Yes | Yes | No (use WSL) |
95
+ | Browser preview | Yes | Yes | — |
96
+ | Serial devices (CUSE) | Yes | No | — |
97
+ | Serial devices (PTY fallback) | Yes | Yes | — |
98
+
99
+ ## MCP Tools
100
+
101
+ Atoo Studio exposes MCP tools for agent integration:
102
+
103
+ `generate_certificate` · `report_tcp_services` · `request_serial_device` · `search_session_history` · `suggest_continue_in_other_session` · `open_file` · `get_session_metadata` · `set_session_metadata` · `github_issue_pr_changed` · `connect_database` · `track_project_changes`
104
+
105
+ ## Other Installation Methods
106
+
107
+ - **Docker**: `ghcr.io/atooai/atoo-studio`
108
+ - **LXC/LXD**: Download from [GitHub Releases](https://github.com/atooai/atoo-studio/releases)
109
+ - **Proxmox**: One-command [LXC](https://github.com/atooai/atoo-studio/tree/main/proxmox) and [VM](https://github.com/atooai/atoo-studio/tree/main/proxmox) scripts
110
+
111
+ ## Links
112
+
113
+ - [GitHub](https://github.com/atooai/atoo-studio)
114
+ - [Website](https://atoo.ai)
115
+
116
+ ## License
117
+
118
+ MIT — Built by [Markus Furtlehner](https://github.com/markusfurtlehner)
package/README.npm.md ADDED
@@ -0,0 +1,118 @@
1
+ # Atoo Studio
2
+
3
+ **Agentic Development Environment** — A workspace where coding agents build, run and debug real systems.
4
+
5
+ Atoo Studio is a browser-based development environment for working with coding agents like Claude Code and Codex CLI. It brings agents, code, preview, DevTools, Git, GitHub, databases and hardware devices into one workspace.
6
+
7
+ Runs on Linux, macOS or WSL as a local web server. No cloud dependency, no vendor lock-in.
8
+
9
+ ## Quick Start
10
+
11
+ ```bash
12
+ npx atoo-studio
13
+ ```
14
+
15
+ Then open `https://localhost:3010` in your browser.
16
+
17
+ To use a different port:
18
+
19
+ ```bash
20
+ ATOO_PORT=4000 npx atoo-studio
21
+ ```
22
+
23
+ ## Install Globally
24
+
25
+ ```bash
26
+ npm install -g atoo-studio
27
+ atoo-studio
28
+ ```
29
+
30
+ ## Docker
31
+
32
+ ```bash
33
+ docker run -p 3010:3010 ghcr.io/atooai/atoo-studio
34
+ ```
35
+
36
+ ## Features
37
+
38
+ - **Multi-agent workflows** — Run Claude Code, Codex CLI and more in parallel across projects and worktrees
39
+ - **Session forking & chaining** — Chain sessions across agents, search history via MCP
40
+ - **Project changes tracking** — Know what was done, by which session, and when
41
+ - **App preview** — Live preview via headless Chrome (CDP pixel streaming), with DevTools and responsive testing
42
+ - **GitHub integration** — Issues, PRs, comments, labels — all from the workspace
43
+ - **Git integration** — Branches, commits, worktrees, stash, diff views, one-click publish
44
+ - **Database explorer** — 15+ database types with specialized views (PostgreSQL, MySQL, SQLite, Redis, MongoDB, Neo4j, InfluxDB, and more)
45
+ - **Container management** — Docker, Podman, and LXC containers
46
+ - **File editor** — Source, diff, rendered, and hex views with drag-and-drop
47
+ - **Serial devices** — Flash ESP32 and Arduino boards through the browser via Web Serial
48
+ - **Terminal** — Multiple PTY sessions with full terminal capabilities
49
+ - **Reverse proxy** — Subdomain and path-based routing with automatic service detection
50
+ - **Authentication** — Password, TOTP, and WebAuthn/passkey support
51
+ - **HTTPS** — Built-in certificate authority trusted by the preview browser
52
+ - **Mobile layout** — Responsive UI with swipe gestures
53
+ - **PWA** — Installable as a desktop app
54
+
55
+ ## Requirements
56
+
57
+ - Node.js 18+
58
+ - Linux, macOS or WSL
59
+ - git
60
+
61
+ ### Optional dependencies
62
+
63
+ | Dependency | Feature |
64
+ |------------|---------|
65
+ | `claude` (Claude Code) | Claude Code agent |
66
+ | `codex` (Codex CLI) | Codex agent |
67
+ | `gh` (GitHub CLI) | GitHub integration |
68
+ | docker / podman / lxc | Container management |
69
+ | ffmpeg | Screen recording |
70
+
71
+ Missing dependencies are reported as warnings on startup.
72
+
73
+ ### Linux setup
74
+
75
+ ```bash
76
+ # Install Chrome/Puppeteer dependencies and ffmpeg
77
+ sudo ./setup.sh
78
+
79
+ # Optional: Serial control signals (DTR/RTS) for device flashing
80
+ sudo ./setup-cuse.sh
81
+ ```
82
+
83
+ ### macOS setup
84
+
85
+ ```bash
86
+ # Install ffmpeg for screen recording (optional)
87
+ ./setup.sh
88
+ ```
89
+
90
+ ## Platform Support
91
+
92
+ | Feature | Linux | macOS | Windows |
93
+ |---------|-------|-------|---------|
94
+ | Core (agents, terminal, git, files) | Yes | Yes | No (use WSL) |
95
+ | Browser preview | Yes | Yes | — |
96
+ | Serial devices (CUSE) | Yes | No | — |
97
+ | Serial devices (PTY fallback) | Yes | Yes | — |
98
+
99
+ ## MCP Tools
100
+
101
+ Atoo Studio exposes MCP tools for agent integration:
102
+
103
+ `generate_certificate` · `report_tcp_services` · `request_serial_device` · `search_session_history` · `suggest_continue_in_other_session` · `open_file` · `get_session_metadata` · `set_session_metadata` · `github_issue_pr_changed` · `connect_database` · `track_project_changes`
104
+
105
+ ## Other Installation Methods
106
+
107
+ - **Docker**: `ghcr.io/atooai/atoo-studio`
108
+ - **LXC/LXD**: Download from [GitHub Releases](https://github.com/atooai/atoo-studio/releases)
109
+ - **Proxmox**: One-command [LXC](https://github.com/atooai/atoo-studio/tree/main/proxmox) and [VM](https://github.com/atooai/atoo-studio/tree/main/proxmox) scripts
110
+
111
+ ## Links
112
+
113
+ - [GitHub](https://github.com/atooai/atoo-studio)
114
+ - [Website](https://atoo.ai)
115
+
116
+ ## License
117
+
118
+ MIT — Built by [Markus Furtlehner](https://github.com/markusfurtlehner)
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/env node
2
+
3
+ import path from 'path';
4
+ import fs from 'fs';
5
+ import { execSync } from 'child_process';
6
+ import { fileURLToPath } from 'url';
7
+
8
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
+ const projectRoot = path.resolve(__dirname, '..');
10
+
11
+ /** Check if a command exists on PATH */
12
+ function hasCommand(cmd) {
13
+ try {
14
+ execSync(`which ${cmd}`, { stdio: 'ignore' });
15
+ return true;
16
+ } catch {
17
+ return false;
18
+ }
19
+ }
20
+
21
+ // --- Windows: not supported ---
22
+ if (process.platform === 'win32') {
23
+ console.error('[atoo-studio] Windows is not supported. Use WSL instead.');
24
+ process.exit(1);
25
+ }
26
+
27
+ // --- Check dependencies ---
28
+ const warnings = [];
29
+ const setupHints = new Set();
30
+
31
+ // Required: git — core feature (version control, worktrees, file tracking)
32
+ if (!hasCommand('git')) {
33
+ warnings.push('git not found — version control, worktrees, and file tracking will not work.');
34
+ }
35
+
36
+ // Optional: gh — GitHub integration (issues, PRs, authentication)
37
+ if (!hasCommand('gh')) {
38
+ warnings.push('gh (GitHub CLI) not found — GitHub integration will not be available.');
39
+ }
40
+
41
+ // Optional: agent CLIs
42
+ if (!hasCommand('claude')) {
43
+ warnings.push('claude (Claude Code) not found — Claude Code agent will not be available.');
44
+ }
45
+ if (!hasCommand('codex')) {
46
+ warnings.push('codex (Codex CLI) not found — Codex agent will not be available.');
47
+ }
48
+
49
+ // Optional: container runtimes
50
+ if (!hasCommand('docker') && !hasCommand('podman') && !hasCommand('lxc')) {
51
+ warnings.push('No container runtime found (docker, podman, or lxc) — container management will not be available.');
52
+ }
53
+
54
+ // Optional: ffmpeg — screen recording
55
+ if (!hasCommand('ffmpeg')) {
56
+ warnings.push('ffmpeg not found — screen recording will not work.');
57
+ setupHints.add('setup.sh');
58
+ }
59
+
60
+ // Platform-specific checks
61
+ if (process.platform === 'linux') {
62
+ // Chrome / Puppeteer libs (only needed on Linux — macOS ships its own)
63
+ try {
64
+ execSync('ldconfig -p | grep -q libatk-1.0', { stdio: 'ignore' });
65
+ } catch {
66
+ warnings.push('Missing Chrome dependencies — browser preview/streaming will not work.');
67
+ setupHints.add('setup.sh');
68
+ }
69
+
70
+ // CUSE for serial control signals (DTR/RTS)
71
+ const cusebin = path.join(process.env.HOME || '', '.atoo-studio', 'bin', 'cuse_serial');
72
+ if (!fs.existsSync('/dev/cuse') || !fs.existsSync(cusebin)) {
73
+ warnings.push('CUSE not set up — serial control signals (DTR/RTS) will not work (e.g. auto-reset for ESP32).');
74
+ setupHints.add('setup-cuse.sh');
75
+ }
76
+ }
77
+
78
+ // Print warnings
79
+ if (warnings.length > 0) {
80
+ for (const w of warnings) console.warn(`[atoo-studio] ${w}`);
81
+ if (setupHints.size > 0) {
82
+ const prefix = process.platform === 'linux' ? 'sudo ' : '';
83
+ const scripts = [...setupHints].map(s => `${prefix}./${s}`).join(' and ');
84
+ console.warn(`[atoo-studio] Run: ${scripts}`);
85
+ }
86
+ console.warn('');
87
+ }
88
+
89
+ // Start the server
90
+ await import('../dist/src/index.js');