vibe64 0.1.39 → 0.1.41

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 (262) hide show
  1. package/bin/run.js +1955 -1855
  2. package/bin/server.js +136 -112
  3. package/bin/upgrade-state.js +5514 -5343
  4. package/dist/assets/GithubBrowserTabs-YvIe2BdE.js +1 -0
  5. package/dist/assets/LocalDatabaseServer-BWAvRlUl.css +1 -0
  6. package/dist/assets/LocalDatabaseServer-CVsGChHh.js +2 -0
  7. package/dist/assets/StudioErrorNotice-C_jbvp9V.js +1 -0
  8. package/dist/assets/VAlert-gwuhYlYb.js +1 -0
  9. package/dist/assets/VAutocomplete-D7Vk5wq_.js +1 -0
  10. package/dist/assets/VAvatar-DvRBcmqv.js +1 -0
  11. package/dist/assets/VBtn-BhVEwXLX.js +1 -0
  12. package/dist/assets/VCard-C3Hx769y.js +1 -0
  13. package/dist/assets/VCheckbox-DyCGSN0H.js +1 -0
  14. package/dist/assets/VCheckboxBtn-DCyuVH7W.css +1 -0
  15. package/dist/assets/VCheckboxBtn-DYcQU2Pn.js +1 -0
  16. package/dist/assets/VChip-VVdtjfq-.js +1 -0
  17. package/dist/assets/VDialog-CQDhjRiV.js +1 -0
  18. package/dist/assets/VDivider-Dq25WsKu.js +1 -0
  19. package/dist/assets/VExpansionPanels-C1y-myl5.js +1 -0
  20. package/dist/assets/VMenu-CDcBLYWR.js +1 -0
  21. package/dist/assets/VOverlay-Cp4rFk6g.js +1 -0
  22. package/dist/assets/VRadioGroup-CAjNZwF7.js +1 -0
  23. package/dist/assets/VRow-BskP28jR.js +1 -0
  24. package/dist/assets/VSelect-D3oLvCcB.js +2 -0
  25. package/dist/assets/VSheet-DxYEFfnM.js +1 -0
  26. package/dist/assets/VSkeletonLoader-Cync3lZZ.js +1 -0
  27. package/dist/assets/VSpacer-CgWOWvBh.js +1 -0
  28. package/dist/assets/VSwitch-BxGuGypi.js +1 -0
  29. package/dist/assets/VTextField-C0b_0cSa.js +1 -0
  30. package/dist/assets/VTextField-F6unyhrS.css +1 -0
  31. package/dist/assets/VTextarea-B7sZd1JY.js +1 -0
  32. package/dist/assets/{Vibe64AsyncModuleState-Do9EqX3S.js → Vibe64AsyncModuleState-syuPcpGx.js} +1 -1
  33. package/dist/assets/{Vibe64AuthSettingsButton-M44SSmZ9.css → Vibe64AuthSettingsButton-D2lltUhi.css} +1 -1
  34. package/dist/assets/Vibe64AuthSettingsButton-DLdfT68V.js +5 -0
  35. package/dist/assets/Vibe64CopyCommand-CYiZcy0d.js +1 -0
  36. package/dist/assets/Vibe64CopyCommand-ClbQLYZi.css +1 -0
  37. package/dist/assets/{Vibe64DashboardBackButton-BH_8j_VR.js → Vibe64DashboardBackButton-Go_MJuIK.js} +1 -1
  38. package/dist/assets/{Vibe64DashboardPageHeader-BXQR00HK.js → Vibe64DashboardPageHeader-BMrdRph6.js} +1 -1
  39. package/dist/assets/Vibe64DashboardPageHeader-CdlzsyKQ.css +1 -0
  40. package/dist/assets/Vibe64DashboardShell-DMPz6fIx.js +1 -0
  41. package/dist/assets/{Vibe64DatabaseWorkspace-CEml9BWn.js → Vibe64DatabaseWorkspace-BCEIOlSg.js} +3 -3
  42. package/dist/assets/{Vibe64DatabaseWorkspace-DPDMxhAW.css → Vibe64DatabaseWorkspace-DePBDUMy.css} +1 -1
  43. package/dist/assets/{Vibe64OutputControls-Co5YzwcK.css → Vibe64OutputControls-CeBzZPUT.css} +1 -1
  44. package/dist/assets/Vibe64OutputControls-DMoqL0VD.js +8 -0
  45. package/dist/assets/{Vibe64RepositoryWorkspace-obZFXkoG.js → Vibe64RepositoryWorkspace-BdwRwbxp.js} +2 -2
  46. package/dist/assets/{Vibe64RepositoryWorkspace-Agyt4O-V.css → Vibe64RepositoryWorkspace-Bw9W691N.css} +1 -1
  47. package/dist/assets/{Vibe64SessionFiles-CQzs6fee.js → Vibe64SessionFiles-ChJWUOqm.js} +4 -4
  48. package/dist/assets/Vibe64SessionFiles-DsPb8hOe.css +1 -0
  49. package/dist/assets/{Vibe64TemporaryAiFixAction-BiuIE9mC.js → Vibe64TemporaryAiFixAction-CIePbdW8.js} +1 -1
  50. package/dist/assets/{Vibe64UiStoryboardView-BhKRpL0N.js → Vibe64UiStoryboardView-Bp9STItF.js} +1 -1
  51. package/dist/assets/{Vibe64UnavailableSessions-Ca5nC7KH.js → Vibe64UnavailableSessions-JBgHzM-j.js} +1 -1
  52. package/dist/assets/{_sessionId_-CKkGH3Rx.js → _sessionId_-Bw0KfJeR.js} +1 -1
  53. package/dist/assets/{_sessionTool_-1V-z6Pbp.js → _sessionTool_-BV1AwpUx.js} +1 -1
  54. package/dist/assets/_slug_-CAmuBm-M.css +1 -0
  55. package/dist/assets/_slug_-q9prK_gX.js +25 -0
  56. package/dist/assets/{access-WlhPvPgy.js → access-C05Nkq6r.js} +1 -1
  57. package/dist/assets/app-D1CGY9Xm.js +1 -0
  58. package/dist/assets/assistantRouting-DeE8jvtE.js +3 -0
  59. package/dist/assets/{changes-CHJjrZAc.js → changes-D17XpgGz.js} +1 -1
  60. package/dist/assets/client-BxGiylrJ.js +2 -0
  61. package/dist/assets/client-C8jwAMY9.css +1 -0
  62. package/dist/assets/{conversation-B90ERX9h.js → conversation-DZW4-Wck.js} +2 -2
  63. package/dist/assets/{conversation-vxJGwmtW.css → conversation-TK6EmDk4.css} +1 -1
  64. package/dist/assets/{createSimpleFunctional-CZTGuNuR.js → createSimpleFunctional-zlXZooQW.js} +1 -1
  65. package/dist/assets/{dashboard-CuutW8iv.js → dashboard-BXXgeQ0Q.js} +1 -1
  66. package/dist/assets/definitions-SNvFDEFS.js +1 -0
  67. package/dist/assets/dialog-transition-D2vqGksQ.js +1 -0
  68. package/dist/assets/env-B5V1EC4M.css +1 -0
  69. package/dist/assets/env-sXAQqKWk.js +1 -0
  70. package/dist/assets/health-92hh8xXh.css +1 -0
  71. package/dist/assets/health-Cr34pf2p.js +1 -0
  72. package/dist/assets/{history-1_NU8azF.js → history-N1iRZaab.js} +1 -1
  73. package/dist/assets/incoming-Bdqo8z25.css +1 -0
  74. package/dist/assets/incoming-CNwZa_yD.js +2 -0
  75. package/dist/assets/{index-irlMYzLh.css → index-B17d4wpZ.css} +1 -1
  76. package/dist/assets/index-Mxalhei8.js +138 -0
  77. package/dist/assets/{integrations-BMzWQQpa.js → integrations-BmwFvHgZ.js} +10 -10
  78. package/dist/assets/integrations-Co8WvCiD.css +1 -0
  79. package/dist/assets/issues-BbiG7dCV.js +1 -0
  80. package/dist/assets/layout-B2Ap07aa.js +1 -0
  81. package/dist/assets/{lazy-NHSwD9FS.js → lazy-BjyT2XvW.js} +1 -1
  82. package/dist/assets/{learning-Bdi3XRS7.js → learning-CUCuuoHM.js} +1 -1
  83. package/dist/assets/mdi-Bt90Ns76.js +1 -0
  84. package/dist/assets/placement-CQy46H3H.js +1 -0
  85. package/dist/assets/publish-4r_4K5IY.js +3 -0
  86. package/dist/assets/publish-BFTsAMCF.css +1 -0
  87. package/dist/assets/pull-requests-BjwokcU0.css +1 -0
  88. package/dist/assets/pull-requests-DY9jg3cE.js +1 -0
  89. package/dist/assets/{repository-BL_2bgzC.js → repository-DhXdoMP6.js} +1 -1
  90. package/dist/assets/ripple-EFNA8EBu.js +11 -0
  91. package/dist/assets/rolldown-runtime-DBalRfVu.js +1 -0
  92. package/dist/assets/{session-BdhKrcX4.js → session-BGpiZThC.js} +1 -1
  93. package/dist/assets/{settings-1rpuL7eR.js → settings-Cj4u-76p.js} +1 -1
  94. package/dist/assets/settings-D8x4KUqV.css +1 -0
  95. package/dist/assets/shared-DZETtWRH.js +2 -0
  96. package/dist/assets/studioGateApi-BXHVBVEc.js +1 -0
  97. package/dist/assets/studioUrls-DpSS-0z1.js +1 -0
  98. package/dist/assets/useArchivedVibe64Sessions-BXNg8oES.js +1 -0
  99. package/dist/assets/useCommand-nWFczmJy.js +1 -0
  100. package/dist/assets/useEndpointResource-Ds8EDBZ2.js +1 -0
  101. package/dist/assets/useRealtimeEvent-DrOiU8lJ.js +1 -0
  102. package/dist/assets/{useUiFeedback-BPBF_0bp.js → useUiFeedback-CMwE4MLs.js} +1 -1
  103. package/dist/assets/useVibe64ConversationLog-C1xjhFtS.js +1 -0
  104. package/dist/assets/{useVibe64DatabaseTools-4o6S8eXq.js → useVibe64DatabaseTools-H6H-YJQX.js} +1 -1
  105. package/dist/assets/useVibe64ProjectScope-B5ogg6jd.js +1 -0
  106. package/dist/assets/useVibe64SessionData-CnDOFFHb.js +1 -0
  107. package/dist/assets/{useVibe64SessionSelection-BzL1y_Vq.js → useVibe64SessionSelection-J87nJ9p5.js} +1 -1
  108. package/dist/assets/{useVibe64SystemGraph-B4RmsC9Y.js → useVibe64SystemGraph-DbSfrYF8.js} +1 -1
  109. package/dist/assets/{useVibe64Terminal-Cg3idMcy.js → useVibe64Terminal-I7Sf6xMW.js} +1 -1
  110. package/dist/assets/vibe64ProjectScope.local-B06ABkhI.js +1 -0
  111. package/dist/assets/vibe64SavedEnvValues-B_QE9aAj.js +1 -0
  112. package/dist/assets/vibe64SessionFocus-CA-sk8Ri.css +1 -0
  113. package/dist/assets/vibe64SessionFocus-DlN8NwcE.js +1 -0
  114. package/dist/assets/{vibe64SessionInfo-BuBUdL-e.js → vibe64SessionInfo-B0uItVOK.js} +1 -1
  115. package/dist/assets/{vibe64SessionToolDefinitions-BJaJH5LR.js → vibe64SessionToolDefinitions-Dsn8WYmO.js} +1 -1
  116. package/dist/index.html +56 -46
  117. package/docs/colleague-usage/account-profile-and-appearance.md +1 -1
  118. package/docs/colleague-usage/{ai-accounts-and-routing.md → ai-accounts.md} +41 -114
  119. package/docs/colleague-usage/ai-model-setups.md +159 -0
  120. package/docs/colleague-usage/ai-onboarding.md +97 -22
  121. package/docs/colleague-usage/ai-personal-use.md +41 -0
  122. package/docs/colleague-usage/auto-workflow.md +8 -3
  123. package/docs/colleague-usage/codex-context-recovery.md +2 -1
  124. package/docs/colleague-usage/coding-agent-goals.md +7 -4
  125. package/docs/colleague-usage/coding-agents.md +8 -5
  126. package/docs/colleague-usage/colleague-watches.md +15 -4
  127. package/docs/colleague-usage/colleague.md +21 -5
  128. package/docs/colleague-usage/connected-contributions.md +13 -13
  129. package/docs/colleague-usage/connected-projects.md +2 -2
  130. package/docs/colleague-usage/conversation-context.md +1 -1
  131. package/docs/colleague-usage/dashboard-navigation.md +5 -3
  132. package/docs/colleague-usage/development-env.md +21 -4
  133. package/docs/colleague-usage/file-interfaces.md +1 -1
  134. package/docs/colleague-usage/github-work.md +8 -8
  135. package/docs/colleague-usage/health-checks.md +52 -18
  136. package/docs/colleague-usage/incoming-changes.md +3 -3
  137. package/docs/colleague-usage/integrations.md +5 -3
  138. package/docs/colleague-usage/learning-course-catalogue.md +3 -3
  139. package/docs/colleague-usage/learning-environment.md +78 -56
  140. package/docs/colleague-usage/learning-mode-ui.md +31 -19
  141. package/docs/colleague-usage/learning-practice-projects.md +15 -4
  142. package/docs/colleague-usage/learning-teacher-guide.md +10 -4
  143. package/docs/colleague-usage/learning-with-colleague.md +12 -8
  144. package/docs/colleague-usage/lesson-authoring.md +13 -13
  145. package/docs/colleague-usage/lesson-step-bar.md +47 -33
  146. package/docs/colleague-usage/main-chat-approvals.md +150 -0
  147. package/docs/colleague-usage/preview-browser-checks.md +5 -1
  148. package/docs/colleague-usage/preview-starting-application.md +10 -1
  149. package/docs/colleague-usage/project-language-tools.md +16 -2
  150. package/docs/colleague-usage/project-settings.md +1 -1
  151. package/docs/colleague-usage/project-setup.md +17 -7
  152. package/docs/colleague-usage/publishing.md +187 -0
  153. package/docs/colleague-usage/running-vibe64-on-your-computer.md +54 -6
  154. package/docs/colleague-usage/sessions.md +18 -10
  155. package/docs/colleague-usage/set-up-linux.md +254 -0
  156. package/docs/colleague-usage/set-up-macos.md +199 -0
  157. package/docs/colleague-usage/set-up-windows.md +76 -0
  158. package/docs/colleague-usage/starter-apps.md +23 -6
  159. package/docs/colleague-usage/teaching-content.md +2 -2
  160. package/docs/colleague-usage/team-ai-access.md +108 -0
  161. package/docs/colleague-usage/temporary-chats.md +9 -7
  162. package/docs/colleague-usage/workspace-preparation.md +50 -1
  163. package/docs/templates/learn-topic/README.md +3 -3
  164. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +2 -1
  165. package/docs/training-content.md +37 -15
  166. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  167. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  168. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  169. package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
  170. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  171. package/node_modules/@jskit-ai/connectors-catalog/patterns/oauth-connection/PATTERN.md +25 -0
  172. package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
  173. package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
  174. package/node_modules/@jskit-ai/kernel/package.json +1 -1
  175. package/node_modules/@jskit-ai/realtime/package.json +1 -1
  176. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  177. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  178. package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
  179. package/node_modules/@local/vibe64-accounts/package.json +2 -1
  180. package/node_modules/@local/vibe64-core/package.json +4 -1
  181. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +82 -81
  182. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +83 -82
  183. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  184. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +118 -68
  185. package/node_modules/@local/vibe64-genesis/src/server/index.js +536 -449
  186. package/node_modules/@local/vibe64-genesis/src/server/packaging.js +105 -0
  187. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +144 -145
  188. package/node_modules/@local/vibe64-packaging/package.json +26 -0
  189. package/node_modules/@local/vibe64-packaging/src/server/packers/capacitor/ShellIcons.java +112 -0
  190. package/node_modules/@local/vibe64-project/package.json +3 -1
  191. package/node_modules/@local/vibe64-publishing/package.json +12 -0
  192. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +7 -7
  193. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +25 -22
  194. package/node_modules/@local/vibe64-terminals/package.json +2 -1
  195. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1341 -1300
  196. package/node_modules/@local/vibe64-training/package.json +2 -1
  197. package/package.json +19 -15
  198. package/server.bundle.mjs +43109 -41089
  199. package/dist/assets/GithubBrowserTabs-C2NO5l8g.js +0 -1
  200. package/dist/assets/StudioErrorNotice-CSrUw1QV.js +0 -1
  201. package/dist/assets/VAlert-P256xaE0.js +0 -1
  202. package/dist/assets/VAutocomplete-BDb95qJX.js +0 -1
  203. package/dist/assets/VAvatar-DPzqDH4r.js +0 -1
  204. package/dist/assets/VBtn-B2MBK2DL.js +0 -1
  205. package/dist/assets/VCard-mXy0k4aS.js +0 -1
  206. package/dist/assets/VCheckbox-C7A1ZW4D.js +0 -1
  207. package/dist/assets/VChip-CcI-Oo2J.js +0 -1
  208. package/dist/assets/VDialog-Bu3EfKb1.js +0 -1
  209. package/dist/assets/VDivider-BMEqUoAB.js +0 -1
  210. package/dist/assets/VExpansionPanels-Dgjrop0V.js +0 -1
  211. package/dist/assets/VMenu-C_x18lwb.js +0 -1
  212. package/dist/assets/VOverlay-CeMZurIN.js +0 -1
  213. package/dist/assets/VRadioGroup-CUu2-KIP.js +0 -1
  214. package/dist/assets/VRow-Cpw7OHQV.js +0 -1
  215. package/dist/assets/VSelect-DL3HaA5m.js +0 -2
  216. package/dist/assets/VSheet-DZWsu0kL.js +0 -1
  217. package/dist/assets/VSkeletonLoader-CttxM1tw.js +0 -1
  218. package/dist/assets/VSpacer-Dhmsvk4t.js +0 -1
  219. package/dist/assets/VSwitch-BRHeDJkH.js +0 -1
  220. package/dist/assets/VTextField-BR2eZeFT.js +0 -1
  221. package/dist/assets/VTextField-BiatYyd3.css +0 -1
  222. package/dist/assets/VTextarea-DbqamXJd.js +0 -1
  223. package/dist/assets/Vibe64AuthSettingsButton-fY4ZiIFF.js +0 -5
  224. package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +0 -1
  225. package/dist/assets/Vibe64DashboardShell-BSq7uXEW.js +0 -1
  226. package/dist/assets/Vibe64OutputControls-_zhGX9ne.js +0 -8
  227. package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +0 -1
  228. package/dist/assets/_slug_-BclonbST.js +0 -24
  229. package/dist/assets/_slug_-CZ1bxO9C.css +0 -1
  230. package/dist/assets/app-BNP_n_Tt.js +0 -1
  231. package/dist/assets/assistantRouting-D4XpXcEf.js +0 -3
  232. package/dist/assets/client-BWV84wi2.js +0 -2
  233. package/dist/assets/client-DGrP-2AJ.css +0 -1
  234. package/dist/assets/definitions-BrMvu6yV.js +0 -1
  235. package/dist/assets/env-BzRtyO0w.css +0 -1
  236. package/dist/assets/env-D3KQGvRe.js +0 -1
  237. package/dist/assets/health-BJvooRnJ.css +0 -1
  238. package/dist/assets/health-BhoO1d4h.js +0 -1
  239. package/dist/assets/incoming-DWDrmxyH.css +0 -1
  240. package/dist/assets/incoming-DzADFGqp.js +0 -2
  241. package/dist/assets/index-dNxr4Lg9.js +0 -138
  242. package/dist/assets/integrations-Cq1x-Di9.css +0 -1
  243. package/dist/assets/issues-Bywux4s7.js +0 -1
  244. package/dist/assets/mdi-CG9pWOSj.js +0 -1
  245. package/dist/assets/placement-BF-zIEhA.js +0 -1
  246. package/dist/assets/pull-requests-CdbhyFOv.css +0 -1
  247. package/dist/assets/pull-requests-ncmKT3sS.js +0 -1
  248. package/dist/assets/ripple-BVltMmyV.js +0 -11
  249. package/dist/assets/settings-BopLnpB0.css +0 -1
  250. package/dist/assets/shared-DpMvYJO3.js +0 -2
  251. package/dist/assets/studioGateApi-DcCqiD9V.js +0 -1
  252. package/dist/assets/studioUrls-DmMMIScP.js +0 -1
  253. package/dist/assets/useArchivedVibe64Sessions-_LB2XxEa.js +0 -1
  254. package/dist/assets/useCommand-Bqxb-naz.js +0 -1
  255. package/dist/assets/useEndpointResource-DWoQ2keu.js +0 -1
  256. package/dist/assets/useRealtimeEvent-Bwapstla.js +0 -1
  257. package/dist/assets/useVibe64ConversationLog-BqUI0S5n.js +0 -1
  258. package/dist/assets/useVibe64Learning-DyqXkpLw.js +0 -1
  259. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +0 -1
  260. package/dist/assets/useVibe64SessionData-B686lToN.js +0 -1
  261. package/dist/assets/vibe64SessionFocus-CqZNTvYF.js +0 -1
  262. package/dist/assets/vibe64SessionFocus-OJ2toBd9.css +0 -1
@@ -0,0 +1,187 @@
1
+ # Publish your project as an app or package (Publish)
2
+
3
+ **Dashboard → Publish** is where a project becomes something people install: an
4
+ app on your own phone, or a package on a registry. On a phone, open Dashboard,
5
+ then choose **Publish** from the **Dashboard section** menu.
6
+
7
+ The page has four parts:
8
+
9
+ - **Releases use your saved work**: the saved commit and branch a release
10
+ would use, whether it is pushed, whether the project's checks passed on it,
11
+ and each package from Packaging with its current version.
12
+ - **Targets**: one card per place a release goes, followed by an **Add
13
+ target** tile. With no targets yet, the page offers the destinations, those
14
+ this project can use first: **Install on my phone**, **GitHub Releases**,
15
+ **npm** and **PyPI**. One that cannot be used yet says why (for example
16
+ "Needs a Python package in Packaging" or "Needs this project's repository
17
+ on GitHub"). Each shows what it needs, how long the first and later releases
18
+ take, and what it costs.
19
+ - **History**: every release and dry run with each step, each target's outcome
20
+ and its proof, and **Full log**. A running release updates live; you can
21
+ leave the page and it carries on.
22
+ - **Accounts & keys** (top right) and **Release** (top right).
23
+
24
+ If the project has no `## Packaging` section yet, the page says **Tell Vibe64
25
+ what to build** instead of showing targets. Ask Colleague or a coding
26
+ conversation, for example "Set up packaging so I can install this app on my
27
+ phone", review the change and Save it.
28
+
29
+ ### Publishing keys and accounts
30
+
31
+ **Accounts & keys** keeps every sign-in and install key Vibe64 uses for
32
+ publishing in one file in your home folder, encrypted under a passphrase of at
33
+ least 12 characters (an `age` file any age tool can open). Create it once;
34
+ afterwards **Unlock** it for 15 minutes when you add accounts or publish, and
35
+ **Lock** it any time. Vibe64 cannot recover a forgotten passphrase.
36
+
37
+ - **Add account**: npm (an access token and the registry address), PyPI (an
38
+ API token and the upload address) or GitHub (**Use my GitHub CLI sign-in**,
39
+ or paste a token). Tokens go straight into the keys file; the page and
40
+ Colleague only ever see the account's name and address.
41
+ - **Replace token** (the key icon on an account) keeps the account's name and
42
+ address, so targets using it keep working with the new token.
43
+ - **Recovery kit**: **Save kit** (or **Manage**) downloads every key as one file under a second
44
+ passphrase; keep both off this computer. **Restore** brings them back on a
45
+ new computer and says how many came back ("Restored 1 key."). When a key is
46
+ newer than your last kit, the panel reads "Your recovery kit is out of date",
47
+ says when it was last saved, and offers **Save kit**.
48
+
49
+ ### Add a target
50
+
51
+ **Add target** (or a destination tile) asks where the release goes, then which
52
+ package (only packages that destination can publish are offered) and which
53
+ account. **What it needs** marks what this project and your keys already have.
54
+ npm also takes an optional tag such as `next`; empty means `latest`. When the
55
+ dialog asks for an account, **Add account** opens Accounts & keys and, when you
56
+ press Done, comes back to the same target. A card's **⋮** menu switches the
57
+ target to another account of the same kind or removes it. Targets are kept by
58
+ Vibe64 for this project on this computer, not in the project's files.
59
+
60
+ ### Release
61
+
62
+ 1. **Release → Version**: each package offers its saved version **as saved**
63
+ while no release has published it, then the next patch, minor and major.
64
+ Releasing as saved needs no session. A new version needs one: **Write
65
+ 1.4.3** puts the version bump and a `CHANGELOG.md` entry (drafted from the
66
+ saved commits in **What's new**) into the session as an ordinary change;
67
+ review it and **Save** it. Without a session the dialog says so and offers
68
+ **Release as saved** while the saved version is still unpublished.
69
+ 2. **Review & publish**: choose targets, unlock your keys if asked, and read
70
+ **Before publishing**: saved and pushed work, Packaging, tags still free,
71
+ checks passed, every sign-in valid, install key and recovery kit, Android
72
+ requirements. What needs attention comes first; the rest folds into **All
73
+ N checks passed**. A red line stops the release and the footer says so; an
74
+ amber one (a changed toolchain) needs **I understand**. Failed checks name
75
+ the check, **Show output** shows the end of its output and **Run again**
76
+ reruns it; a refused sign-in offers **Fix sign-in**; saved work that is
77
+ not on the remote yet offers **Push to origin** (fast-forward only, never
78
+ forced; it is the person's button, not a Colleague tool). **What happens** lists
79
+ the steps in order: build each package once, tag the saved commit, publish
80
+ to each target (with its account and address), under a short plan id such
81
+ as `Plan 3f9c`.
82
+ 3. **Dry run** builds once and asks each destination what would happen;
83
+ nothing is tagged or uploaded. It appears in History as a dry run.
84
+ 4. **Publish…** opens the confirmation: exactly which package goes where at
85
+ which version, the saved commit and tag. **Publish** there (with your
86
+ passphrase if the keys locked meanwhile) builds each package once, then
87
+ tags the saved commit and pushes the tag, then sends the same files to
88
+ every target and reads each back. A failed build therefore leaves no tag
89
+ behind. If the saved work, targets, the account a target signs in with, or
90
+ tools changed since you reviewed, it refuses and shows the new plan. Builds use the saved commit without the
91
+ project's Genesis and agent folders (`genesis/`, `.genesis/`, `.agents/`,
92
+ `.claude/`, `.codex/`, `.opencode/`), so packages never ship them. Builds
93
+ and **Run checks** run the project's own code the way Vibe64 runs any other
94
+ project command, with a throwaway home folder and none of your sign-ins.
95
+
96
+ While a release runs each of its target cards shows **Publishing 1.4.3…**;
97
+ afterwards a card shows the version people get, **Live · published …** and a
98
+ **Verified** checksum read back from the destination: npm's integrity value,
99
+ or for PyPI and GitHub Releases each file's own sha256 (the value pip and the
100
+ release page show). The Publish page's
101
+ **Checks** line runs the checks on the saved commit at any time and, when they
102
+ fail, shows which check failed with **Show output**.
103
+
104
+ When a build or upload fails, the target card says **Last release failed**
105
+ with the reason; pressing it opens that release in History with the tool's
106
+ own error output (credentials removed) and **Full log**. A release where some
107
+ targets failed shows **Partly published**; fix the cause and **Finish this
108
+ release** retries only the unfinished targets of the same plan (published
109
+ targets are not sent again). If the fix changed the saved work, the button
110
+ reads **Release the new saved work** and starts a new release instead; if the
111
+ plan itself changed (for example a check or setting), **Finish this release**
112
+ opens a new release with a note saying why. Long tool output keeps its start
113
+ and end. Checks that fail without blocking show in amber. Errors appear as a
114
+ short message at the bottom of the page.
115
+
116
+ ### Colleague and publishing
117
+
118
+ Colleague can read the Publish state, suggest and write a version bump into
119
+ the session, read the plan and preflight, start a dry run, read history and
120
+ logs, and **ask** to publish. Asking only shows a banner, **Your Colleague asked
121
+ to publish plan …**, with **Review** and **Dismiss**; **Review** opens the same
122
+ confirmation. Only your **Publish** press publishes. Colleague never sees a
123
+ token, key, passphrase or file path, and cannot add accounts, unlock keys,
124
+ accept a licence or confirm.
125
+
126
+ How publishing works underneath:
127
+
128
+ Package registries Vibe64 releases to:
129
+
130
+ - **npm**: an `npm` package is packed once with `npm pack`; a dry run shows the
131
+ exact files and what changed since the version people install today. Proof
132
+ is the registry's own integrity value. Undo means moving `latest` back to an
133
+ earlier version (npm versions cannot be replaced).
134
+ - **PyPI** (or TestPyPI): a `python-dist` package's sdist and wheel pass
135
+ `twine check` first. Versions use PyPI's spelling, so `1.5.0-rc.1` is
136
+ published as `1.5.0rc1`. Undo means yanking the release on pypi.org, which
137
+ Vibe64 links to; a file name can never be reused.
138
+ - **GitHub Releases**: the built files are attached to the release of the tag
139
+ Vibe64 put on your saved commit, as draft, prerelease or latest. Undo means
140
+ making an earlier release latest again.
141
+ - Re-running a release that already reached a registry is safe: the same
142
+ version with the same files counts as done. The same version with different
143
+ files is refused; choose a new version instead.
144
+ - A project that already versions with Changesets, release-please,
145
+ setuptools-scm or similar keeps that tool; its Packaging says
146
+ `Version from: external` and Vibe64 only reads the version.
147
+
148
+ **Install on my phone** (Android, no store account):
149
+
150
+ - The app's web client is a `web-bundle` package and the phone app a
151
+ `capacitor` package with an id such as `com.example.notes` (permanent once
152
+ people install it), a name, a 1024×1024 PNG icon with no transparency, and
153
+ one `Permission` line with a plain reason per capability (camera,
154
+ microphone, location, notifications, photos, contacts, calendar, bluetooth,
155
+ vibration). Native plugins are ordinary dependencies of the client at the
156
+ exact versions in its `package-lock.json`, on Capacitor 8; Vibe64 builds
157
+ with exactly those and stops if the lockfile disagrees.
158
+ - The build needs Java 21 and the Android SDK (platform 36). Vibe64 shows the
159
+ Android SDK licence; only after **you** accept it does it download the SDK
160
+ into a folder in your home directory. It never accepts the licence for you.
161
+ The first build downloads about 2 GB in all and needs about 2 GB of free
162
+ memory; later builds take a minute or two.
163
+ - The card lists three one-time tasks in order. **Android build tools → Set
164
+ up** shows Google's licence in full; **Accept and download** records your
165
+ acceptance and downloads Java and the SDK into your user cache folder.
166
+ **Install key → Create** makes the app's **install key** in your publishing
167
+ keys. **Recovery kit → Save kit** downloads a kit that includes it. Preflight
168
+ stops a phone release until all three are done.
169
+ - Phones install an update only when it is signed with the same install key: a
170
+ lost key (and no recovery kit) means everyone must uninstall and reinstall.
171
+ On the command line, `vibe64-publish keygen app --out <folder>` creates a key
172
+ as two private files.
173
+ - Every build gets a build number one higher than the last; it is never stored
174
+ in the project. After a release the card shows **Install on phone**: a QR
175
+ code your phone scans on the same Wi-Fi. Opened on an Android phone itself,
176
+ it offers **Download** directly, with **Show a QR code for another phone**. This computer shares only that one
177
+ APK, at an unguessable address, for 10 minutes or until you close the
178
+ dialog. **Download APK** saves it here instead; History offers both for
179
+ earlier releases.
180
+ - Phones that installed this APK must uninstall it before installing the same
181
+ app from Google Play later (a different signing line). Since 30 September
182
+ 2026, phones in Brazil, Indonesia, Singapore and Thailand install apps only
183
+ from developers verified by Google; this goes worldwide in 2027. Preflight
184
+ says so before a release.
185
+
186
+ Colleague can open **Publish** for you and explain these steps. It cannot
187
+ publish, confirm a release or see any credential.
@@ -12,22 +12,67 @@ run `PORT=3001 npx vibe64 --no-open` and open `http://127.0.0.1:3001` yourself.
12
12
 
13
13
  Nothing needs configuring. Vibe64 runs as you, with your own tools and folders.
14
14
 
15
+ Setting up a computer for the first time? Follow the step-by-step guide for
16
+ yours: [Linux](set-up-linux.md) (Ubuntu, Debian, Fedora, Arch),
17
+ [macOS](set-up-macos.md) or [Windows](set-up-windows.md) (through WSL). Each
18
+ covers Node.js, Git, an AI tool, project languages, build tools and database
19
+ servers, and the **Other ways** links on tool rows open the matching section.
20
+
15
21
  ## Tools Vibe64 uses
16
22
 
17
23
  Vibe64 runs the tools already installed on your computer: the ones your
18
24
  terminal finds on its `PATH`, plus Homebrew's `/opt/homebrew/bin` on macOS.
19
25
  That includes Node.js, npm, Git and any language tools your projects need.
20
- Install or upgrade them the way you normally would; Vibe64 uses the new version
26
+ Your own installs come first: `~/.local/bin`, mise's shims folder
27
+ (`~/.local/share/mise/shims`) and the Claude Code, opencode, rustup and Bun
28
+ folders are searched before the system folders, so `mise use -g python@3.13`
29
+ beats an older system Python even before your shell profile is reloaded. On
30
+ Debian and Ubuntu the newest `/usr/lib/postgresql/<version>/bin` is added, and on
31
+ macOS Homebrew's PostgreSQL and MariaDB folders, so their programs are found.
32
+ Install or upgrade tools the way you normally would; Vibe64 uses the new version
21
33
  the next time it runs a command.
22
34
 
35
+ Vibe64 needs Node.js (the version it declares), Git and one AI tool. Everything
36
+ else depends on the project: a tool row appears only where a step needs it, for
37
+ example after **Preparing workspace** fails (see
38
+ [Project language tools](project-language-tools.md)).
39
+
40
+ On native Windows, `npx vibe64` stops and explains that Vibe64 runs on Windows
41
+ inside WSL2 (Ubuntu), with a link to [Set up Windows](set-up-windows.md). With
42
+ the wrong Node.js version it stops and shows the mise command that installs the
43
+ right one, with a link to the guide's Node.js step: mise must also be added to
44
+ your shell before a new terminal finds the new Node.js.
45
+
23
46
  - **AI agents.** Claude Code, Codex and opencode are used through their own
24
47
  commands, so each must be installed on this computer before you can use it.
25
- See [AI accounts](ai-accounts-and-routing.md) for what to install and how to
48
+ See [AI accounts](ai-accounts.md) for what to install and how to
26
49
  check again.
27
50
  - **npm global installs** go wherever your own npm configuration puts them.
28
51
  - **Playwright** uses its own browser cache. If **Health** reports that
29
52
  Playwright or its Chromium is missing, install Playwright, then run
30
- `playwright install chromium`.
53
+ `playwright install chromium`. The coding agent's Preview browser checks use
54
+ the project's own Playwright when it has one, otherwise the `playwright`
55
+ command installed on this computer (for example `npm install -g playwright`).
56
+ A Django, Rails or Spring Boot project therefore needs no Node.js packages
57
+ for these checks.
58
+
59
+ ## Git
60
+
61
+ Vibe64 keeps each project's history with Git (2.28 or newer).
62
+
63
+ - **Git missing or too old.** The repository button at the top of a project
64
+ says **Git needed** (or **Update Git**). Open it for the install command for
65
+ this computer, with a copy button; after installing, press **Check again**.
66
+ - **A folder without Git.** The button says **No Git yet**. Open it and choose
67
+ **Start version control here** to start Git in that folder. Vibe64 never does
68
+ this by itself, and nothing is uploaded.
69
+ - **Your name on commits.** Commits use the name and email from your own Git
70
+ settings. If Git has none, they are saved with a stand-in name ending in
71
+ “via Vibe64”, and **Health** and the Save result show the two
72
+ `git config --global` lines to set yours.
73
+ - **Signed commits.** If your Git signs every commit (`commit.gpgsign`) and the
74
+ key needs a passphrase, Vibe64 can't type it. Make one signed commit in a
75
+ terminal to unlock the key, then try again. Vibe64 doesn't change the setting.
31
76
 
32
77
  ## Where Vibe64 keeps things
33
78
 
@@ -56,6 +101,9 @@ itself. To keep using the old location instead, start Vibe64 with
56
101
 
57
102
  ## Colleague
58
103
 
59
- Colleague can explain where Vibe64 keeps things and which tools it uses, and can
60
- open **Health** to check them. Installing tools, moving folders and restarting
61
- Vibe64 happen in your own terminal; Colleague cannot run them for you.
104
+ Colleague can explain where Vibe64 keeps things, which tools it uses and every
105
+ step of the setup guides. It can run **Health**, check whether a named tool runs
106
+ now, check a project's database server and save non-secret connection values
107
+ in **Env** when you ask. Installing tools, editing shell files, moving folders
108
+ and restarting Vibe64 happen in your own terminal; Colleague cannot run them for
109
+ you and never uses `sudo`.
@@ -1,9 +1,10 @@
1
1
  # Create and switch sessions
2
2
 
3
3
  Use **New session** (+), or **Create session** when there are no open sessions,
4
- to open **Start an AI session**. It lists **Claude Code** first, then **Codex**,
5
- then **OpenCode**, and preselects the first available one. Choose an available
6
- orchestrator, review any branch choice, then select **Create session** (or
4
+ to open **Start an AI session**. It shows **Runs on your main AI:** and the main
5
+ AI's model; every session runs on that AI setup, with no per-session tool
6
+ choice. Select **Change** to open AI setup instead. Review any branch choice,
7
+ then select **Create session** (or
7
8
  **Create branch & session**). While **Creating session…** is shown, the dialog
8
9
  shows a progress bar and explains that it is copying the project source. It stays open: clicking outside,
9
10
  pressing Escape, Close and Cancel cannot dismiss it. On success it closes and
@@ -25,9 +26,10 @@ followed by the project's setup steps. The assistant can start when preparation
25
26
  finishes; see [Prepare a session after updating its source](workspace-preparation.md)
26
27
  for failures and retry.
27
28
 
28
- Creation through an action without an explicit AI choice uses the first available
29
- workflow from the same picker. An explicit choice is preserved even when it is
30
- unavailable: fix its account or Model routing settings before retrying. Colleague
29
+ Creation through an action without an explicit AI choice uses the main AI. An
30
+ explicit model choice makes the new chat Custom and is preserved even when it is
31
+ unavailable: fix its account or AI setup before retrying. A team member's new
32
+ session still records the owner's main AI; main chat runs on the owner's AI. Colleague
31
33
  can read the available choices and explain recovery; it must not claim a failed
32
34
  request left no saved lesson without checking that lesson's current state.
33
35
 
@@ -144,8 +146,9 @@ permissions and confirmation still apply.
144
146
 
145
147
  ## Chat availability
146
148
 
147
- The chat checks which modes you can use and shows the effective assistant,
148
- shared-backup label or an actionable connection message. These lightweight
149
+ The chat checks which modes you can use and shows the effective assistant or an
150
+ actionable connection message. Modes that run on the owner's AI are not listed
151
+ for team members. These lightweight
149
152
  checks do not start a model or download its repeated execution plan. Opening
150
153
  **Chat mode** still shows the available choices; access is checked again when
151
154
  work is sent. Colleague can explain an unavailable mode, but cannot grant access.
@@ -237,10 +240,15 @@ not require an AI connection. Archive or renewal already in progress still block
237
240
  You can still browse and work in other session tabs; the server-selected source
238
241
  link stays on the pinned session. Cross-project requests addressed to the
239
242
  server-selected session also keep that destination. Pinning does not Save,
240
- publish, freeze file contents, or deploy.
243
+ push, freeze file contents, or deploy.
241
244
 
242
245
  The pinned session cannot be archived or renewed, and the project cannot close
243
246
  or be closed by idle cleanup. Closing your browser does not remove the pin.
247
+ Idle cleanup otherwise closes an open project, with its Preview, terminals and
248
+ assistant processes, 30 to 35 minutes after its last recorded activity (opening
249
+ it, session changes and assistant work). Leaving the project or closing the
250
+ browser does not close it sooner; close the project yourself to free its
251
+ memory at once. A running assistant turn or active goal keeps it open.
244
252
  The pin survives server restarts. To change it, return to the pinned session and
245
253
  choose **Unpin session**; tab selection then controls the source link again.
246
254
  Other sessions show a disabled pin with **Unpin the project's pinned session first**.
@@ -248,7 +256,7 @@ Desktop and mobile use the same pin button beside Save. Learning sessions have
248
256
  no source pin. Separate project pins do not affect each other.
249
257
 
250
258
  Colleague can explain the pin or, on your explicit request, pin/unpin a named
251
- session through its session action. Source cleanliness and publication checks
259
+ session through its session action. Source cleanliness and saved-work checks
252
260
  for host updates still apply to the pinned source.
253
261
 
254
262
  ## Answer clarification questions
@@ -0,0 +1,254 @@
1
+ # Set up Linux for Vibe64
2
+
3
+ A step-by-step setup for running Vibe64 on your own Linux computer: Ubuntu and
4
+ Debian (also inside WSL on Windows), Fedora and Arch. Do the steps up to **An AI tool**
5
+ once. The project steps only matter when a project needs them, and Vibe64 tells
6
+ you when: a row with the exact command appears where the work needs the tool.
7
+
8
+ Commands that start with `sudo` ask for your computer password. Nothing shows
9
+ while you type it; press Enter when done. Everything else installs into your
10
+ home folder and needs no password.
11
+
12
+ ## Basic tools
13
+
14
+ Vibe64 needs `curl` and `git`. Most desktops already have them.
15
+
16
+ | System | Command |
17
+ |---|---|
18
+ | Ubuntu, Debian, WSL | `sudo apt install curl git` |
19
+ | Fedora | `sudo dnf install curl git` |
20
+ | Arch | `sudo pacman -S curl git` |
21
+
22
+ Check: `git --version` prints a version (2.28 or newer).
23
+
24
+ ## Node.js and mise
25
+
26
+ Vibe64 needs **Node.js 26**. Distribution packages are older, so install it
27
+ with [mise](https://mise.jdx.dev/), which installs languages into your home
28
+ folder without a password. Install mise:
29
+
30
+ ```sh
31
+ curl -fsSL https://mise.run | sh
32
+ ```
33
+
34
+ Then add it to your shell, so every terminal (and every program Vibe64 starts)
35
+ finds the tools it installs. For **bash** on Ubuntu, Debian and WSL:
36
+
37
+ ```sh
38
+ echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
39
+ echo 'eval "$(~/.local/bin/mise activate bash --shims)"' >> ~/.profile
40
+ ```
41
+
42
+ On **Fedora and Arch**, use `~/.bash_profile` instead of `~/.profile` in the
43
+ second line (those systems read `~/.bash_profile` first). If your shell is
44
+ **zsh**, use `activate zsh` and the files `~/.zshrc` and `~/.zprofile`. Other
45
+ shells: see mise's [shell setup](https://mise.jdx.dev/dev-tools/shims.html).
46
+
47
+ Now install Node.js and close the terminal:
48
+
49
+ ```sh
50
+ ~/.local/bin/mise use -g node@26
51
+ ```
52
+
53
+ Open a new terminal. Check: `node --version` prints `v26…`. Always keep the
54
+ `-g`: without it, mise writes a `mise.toml` file into whatever folder you are
55
+ in.
56
+
57
+ ## Start Vibe64
58
+
59
+ In the folder you want to work on, run `npx vibe64`. See
60
+ [Running Vibe64 on your computer](running-vibe64-on-your-computer.md) for the
61
+ options and where Vibe64 keeps its data.
62
+
63
+ ## Git
64
+
65
+ Tell Git who you are, once, so your commits carry your name:
66
+
67
+ ```sh
68
+ git config --global user.name "Your Name"
69
+ git config --global user.email "you@example.com"
70
+ ```
71
+
72
+ Without them Vibe64 still saves your work, using a stand-in name ending in
73
+ “via Vibe64”, and **Health** reminds you. To work with GitHub, connect it in
74
+ **Account settings → GitHub**; signing in fills in your name and email only
75
+ when Git has none.
76
+
77
+ ## An AI tool
78
+
79
+ Vibe64 works through one AI tool on this computer. One is enough; each installs
80
+ into your home folder:
81
+
82
+ | AI | Command |
83
+ |---|---|
84
+ | Claude Code | `curl -fsSL https://claude.ai/install.sh \| bash` |
85
+ | Codex (ChatGPT and OpenAI keys) | `curl -fsSL https://chatgpt.com/codex/install.sh \| sh` |
86
+ | opencode (providers connected through OpenCode) | `curl -fsSL https://opencode.ai/install \| bash` |
87
+
88
+ Then choose **Set up your AI** in Vibe64 and sign in. See
89
+ [AI accounts](ai-accounts.md).
90
+
91
+ ## Project languages
92
+
93
+ Only when a project needs one. When **Preparing workspace** fails because a
94
+ language is missing, the panel shows its row with the command for this
95
+ computer. These install with mise, without a password:
96
+
97
+ | Language | Command |
98
+ |---|---|
99
+ | Python | `mise use -g python@3.13` |
100
+ | Ruby | `mise use -g ruby@3.4` |
101
+ | Java | `mise use -g java@temurin-25` |
102
+ | Go | `mise use -g go` |
103
+ | Rust | `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh` |
104
+ | PHP and Composer | `/bin/bash -c "$(curl -fsSL https://php.new/install/linux)"` |
105
+
106
+ After installing, choose **Check again** on the row; no restart is needed.
107
+
108
+ **Using your system's packages instead.** This works too, but needs a
109
+ password and gives older versions.
110
+
111
+ - Python on Ubuntu, Debian, WSL:
112
+ `sudo apt install python3 python3-venv python3-pip` (without
113
+ `python3-venv`, creating a virtual environment fails with “ensurepip is not
114
+ available”). Fedora: `sudo dnf install python3 python3-pip`. Arch:
115
+ `sudo pacman -S python python-pip`.
116
+ - PHP on Ubuntu, Debian, WSL:
117
+ `sudo apt install php-cli php-mysql php-pgsql php-sqlite3 php-xml php-mbstring php-curl php-zip php-intl unzip composer`.
118
+ Fedora:
119
+ `sudo dnf install php-cli php-mysqlnd php-pgsql php-pdo php-xml php-mbstring php-intl php-pecl-zip composer`.
120
+ On Arch, use the php.new line above: Arch's own PHP needs extensions turned on
121
+ by hand.
122
+ - Ruby from the system is not recommended: installing gems then needs a password.
123
+
124
+ ## Build tools
125
+
126
+ Some packages compile native code (Rails gems such as `psych`, `pg` and
127
+ `mysql2`, Python's `mysqlclient`), so they need a compiler and a few
128
+ libraries. The row is called **Build tools**.
129
+
130
+ Ubuntu, Debian, WSL:
131
+
132
+ ```sh
133
+ sudo apt install build-essential pkg-config libyaml-dev libssl-dev zlib1g-dev libpq-dev default-libmysqlclient-dev libgmp-dev
134
+ ```
135
+
136
+ Fedora:
137
+
138
+ ```sh
139
+ sudo dnf install gcc gcc-c++ make pkgconf-pkg-config libyaml-devel openssl-devel zlib-ng-compat-devel gmp-devel libpq-devel mariadb-connector-c-devel
140
+ ```
141
+
142
+ Arch:
143
+
144
+ ```sh
145
+ sudo pacman -S --needed base-devel libyaml openssl zlib gmp postgresql-libs mariadb-libs
146
+ ```
147
+
148
+ ## Databases
149
+
150
+ Only when a project uses MySQL or PostgreSQL. SQLite needs nothing. You run the
151
+ database server yourself; one you already have is fine. Vibe64 never starts it
152
+ for you.
153
+
154
+ **Install and start it**, once. For MySQL projects, use MariaDB, the
155
+ MySQL-compatible server Linux systems ship.
156
+
157
+ | | MariaDB (for MySQL projects) | PostgreSQL |
158
+ |---|---|---|
159
+ | Ubuntu, Debian, WSL | `sudo apt install mariadb-server` | `sudo apt install postgresql` |
160
+
161
+ Fedora, MariaDB:
162
+
163
+ ```sh
164
+ sudo dnf install mariadb-server
165
+ sudo systemctl enable --now mariadb
166
+ ```
167
+
168
+ Fedora, PostgreSQL:
169
+
170
+ ```sh
171
+ sudo dnf install postgresql-server
172
+ sudo env PGSETUP_INITDB_OPTIONS="--auth-host=scram-sha-256" postgresql-setup --initdb
173
+ sudo systemctl enable --now postgresql
174
+ ```
175
+
176
+ Arch, MariaDB:
177
+
178
+ ```sh
179
+ sudo pacman -S mariadb
180
+ sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
181
+ sudo systemctl enable --now mariadb
182
+ ```
183
+
184
+ Arch, PostgreSQL:
185
+
186
+ ```sh
187
+ sudo pacman -S postgresql
188
+ sudo -iu postgres initdb -D /var/lib/postgres/data --auth-local=peer --auth-host=scram-sha-256
189
+ sudo systemctl enable --now postgresql
190
+ ```
191
+
192
+ On Ubuntu and Debian the server starts by itself. If it is stopped later, start
193
+ it with `sudo service mariadb start` or `sudo service postgresql start`.
194
+
195
+ On Fedora, the PostgreSQL line above lets projects sign in with a password. A
196
+ server set up earlier without it refuses password sign-ins; the panel then says
197
+ the server “doesn't accept password sign-ins”. To fix it, change `ident` to
198
+ `scram-sha-256` on the `127.0.0.1` and `::1` lines of
199
+ `/var/lib/pgsql/data/pg_hba.conf`, then run `sudo systemctl reload postgresql`.
200
+
201
+ **Give the project its own login.** The administrator accounts (`root` for
202
+ MariaDB, `postgres` for PostgreSQL) only sign in from the computer's own
203
+ administrator account, so projects need a login of their own. In the failed
204
+ step's **database server** panel, choose **Suggest a user and password**, open
205
+ **Create a login and database**, copy the command and paste it into a terminal.
206
+ Then choose **Save and check**. When the panel says connected, choose
207
+ **Retry**. See [Workspace preparation](workspace-preparation.md).
208
+
209
+ If you already run Oracle MySQL, keep it: put its host, port, user and password
210
+ in the panel or in **Env**. Don't install MariaDB next to it; the two replace
211
+ each other's packages.
212
+
213
+ ## Extras
214
+
215
+ Nice to have; nothing depends on them.
216
+
217
+ | Tool | Ubuntu, Debian, WSL | Fedora | Arch |
218
+ |---|---|---|---|
219
+ | GitHub CLI | `mise use -g gh` | `mise use -g gh` | `sudo pacman -S github-cli` |
220
+ | ripgrep (faster search) | `sudo apt install ripgrep` | `sudo dnf install ripgrep` | `sudo pacman -S ripgrep` |
221
+ | Browser for automated checks | `npx playwright install --with-deps chromium` | `npx playwright install chromium` | `npx playwright install chromium` |
222
+
223
+ Playwright installs the libraries its browser needs only on Ubuntu and Debian;
224
+ on Fedora and Arch, if the browser doesn't start, install the libraries it
225
+ names. Don't install the GitHub CLI with snap. GitHub's own
226
+ [install page](https://github.com/cli/cli/blob/trunk/docs/install_linux.md)
227
+ lists the official package repositories.
228
+
229
+ ## Check your setup
230
+
231
+ Open **Dashboard → Health**. The top line says **Vibe64 has what it needs.**
232
+ when Node.js, Git and an AI tool all run. Each missing tool shows its command
233
+ with a copy button and **Check again**. A tool counts only when it actually
234
+ starts, so a broken install shows as **didn't start**, not as ready.
235
+
236
+ If a tool works in your terminal but Vibe64 can't find it, it is probably
237
+ installed somewhere only your interactive shell knows. Check the `mise` lines
238
+ above, then start Vibe64 again from a new terminal.
239
+
240
+ ## Ask Colleague
241
+
242
+ Colleague can walk you through any step here and explain what a row or message
243
+ means. It can also do the safe parts for you, when you ask:
244
+
245
+ - check whether a tool runs now (“is Ruby installed?”), or run all of
246
+ **Health**;
247
+ - check the project's database server with the current values, and save the
248
+ host, port, database name and user name you tell it into **Env**;
249
+ - retry the session's **Preparing workspace**, and open **Health** or **Env**.
250
+
251
+ You run the install commands yourself, in your own terminal: Colleague never
252
+ uses `sudo`, never edits your shell files and never installs anything. Never
253
+ type a password into chat; enter it in the panel's password field or in
254
+ **Env**.