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.
- package/bin/run.js +1955 -1855
- package/bin/server.js +136 -112
- package/bin/upgrade-state.js +5514 -5343
- package/dist/assets/GithubBrowserTabs-YvIe2BdE.js +1 -0
- package/dist/assets/LocalDatabaseServer-BWAvRlUl.css +1 -0
- package/dist/assets/LocalDatabaseServer-CVsGChHh.js +2 -0
- package/dist/assets/StudioErrorNotice-C_jbvp9V.js +1 -0
- package/dist/assets/VAlert-gwuhYlYb.js +1 -0
- package/dist/assets/VAutocomplete-D7Vk5wq_.js +1 -0
- package/dist/assets/VAvatar-DvRBcmqv.js +1 -0
- package/dist/assets/VBtn-BhVEwXLX.js +1 -0
- package/dist/assets/VCard-C3Hx769y.js +1 -0
- package/dist/assets/VCheckbox-DyCGSN0H.js +1 -0
- package/dist/assets/VCheckboxBtn-DCyuVH7W.css +1 -0
- package/dist/assets/VCheckboxBtn-DYcQU2Pn.js +1 -0
- package/dist/assets/VChip-VVdtjfq-.js +1 -0
- package/dist/assets/VDialog-CQDhjRiV.js +1 -0
- package/dist/assets/VDivider-Dq25WsKu.js +1 -0
- package/dist/assets/VExpansionPanels-C1y-myl5.js +1 -0
- package/dist/assets/VMenu-CDcBLYWR.js +1 -0
- package/dist/assets/VOverlay-Cp4rFk6g.js +1 -0
- package/dist/assets/VRadioGroup-CAjNZwF7.js +1 -0
- package/dist/assets/VRow-BskP28jR.js +1 -0
- package/dist/assets/VSelect-D3oLvCcB.js +2 -0
- package/dist/assets/VSheet-DxYEFfnM.js +1 -0
- package/dist/assets/VSkeletonLoader-Cync3lZZ.js +1 -0
- package/dist/assets/VSpacer-CgWOWvBh.js +1 -0
- package/dist/assets/VSwitch-BxGuGypi.js +1 -0
- package/dist/assets/VTextField-C0b_0cSa.js +1 -0
- package/dist/assets/VTextField-F6unyhrS.css +1 -0
- package/dist/assets/VTextarea-B7sZd1JY.js +1 -0
- package/dist/assets/{Vibe64AsyncModuleState-Do9EqX3S.js → Vibe64AsyncModuleState-syuPcpGx.js} +1 -1
- package/dist/assets/{Vibe64AuthSettingsButton-M44SSmZ9.css → Vibe64AuthSettingsButton-D2lltUhi.css} +1 -1
- package/dist/assets/Vibe64AuthSettingsButton-DLdfT68V.js +5 -0
- package/dist/assets/Vibe64CopyCommand-CYiZcy0d.js +1 -0
- package/dist/assets/Vibe64CopyCommand-ClbQLYZi.css +1 -0
- package/dist/assets/{Vibe64DashboardBackButton-BH_8j_VR.js → Vibe64DashboardBackButton-Go_MJuIK.js} +1 -1
- package/dist/assets/{Vibe64DashboardPageHeader-BXQR00HK.js → Vibe64DashboardPageHeader-BMrdRph6.js} +1 -1
- package/dist/assets/Vibe64DashboardPageHeader-CdlzsyKQ.css +1 -0
- package/dist/assets/Vibe64DashboardShell-DMPz6fIx.js +1 -0
- package/dist/assets/{Vibe64DatabaseWorkspace-CEml9BWn.js → Vibe64DatabaseWorkspace-BCEIOlSg.js} +3 -3
- package/dist/assets/{Vibe64DatabaseWorkspace-DPDMxhAW.css → Vibe64DatabaseWorkspace-DePBDUMy.css} +1 -1
- package/dist/assets/{Vibe64OutputControls-Co5YzwcK.css → Vibe64OutputControls-CeBzZPUT.css} +1 -1
- package/dist/assets/Vibe64OutputControls-DMoqL0VD.js +8 -0
- package/dist/assets/{Vibe64RepositoryWorkspace-obZFXkoG.js → Vibe64RepositoryWorkspace-BdwRwbxp.js} +2 -2
- package/dist/assets/{Vibe64RepositoryWorkspace-Agyt4O-V.css → Vibe64RepositoryWorkspace-Bw9W691N.css} +1 -1
- package/dist/assets/{Vibe64SessionFiles-CQzs6fee.js → Vibe64SessionFiles-ChJWUOqm.js} +4 -4
- package/dist/assets/Vibe64SessionFiles-DsPb8hOe.css +1 -0
- package/dist/assets/{Vibe64TemporaryAiFixAction-BiuIE9mC.js → Vibe64TemporaryAiFixAction-CIePbdW8.js} +1 -1
- package/dist/assets/{Vibe64UiStoryboardView-BhKRpL0N.js → Vibe64UiStoryboardView-Bp9STItF.js} +1 -1
- package/dist/assets/{Vibe64UnavailableSessions-Ca5nC7KH.js → Vibe64UnavailableSessions-JBgHzM-j.js} +1 -1
- package/dist/assets/{_sessionId_-CKkGH3Rx.js → _sessionId_-Bw0KfJeR.js} +1 -1
- package/dist/assets/{_sessionTool_-1V-z6Pbp.js → _sessionTool_-BV1AwpUx.js} +1 -1
- package/dist/assets/_slug_-CAmuBm-M.css +1 -0
- package/dist/assets/_slug_-q9prK_gX.js +25 -0
- package/dist/assets/{access-WlhPvPgy.js → access-C05Nkq6r.js} +1 -1
- package/dist/assets/app-D1CGY9Xm.js +1 -0
- package/dist/assets/assistantRouting-DeE8jvtE.js +3 -0
- package/dist/assets/{changes-CHJjrZAc.js → changes-D17XpgGz.js} +1 -1
- package/dist/assets/client-BxGiylrJ.js +2 -0
- package/dist/assets/client-C8jwAMY9.css +1 -0
- package/dist/assets/{conversation-B90ERX9h.js → conversation-DZW4-Wck.js} +2 -2
- package/dist/assets/{conversation-vxJGwmtW.css → conversation-TK6EmDk4.css} +1 -1
- package/dist/assets/{createSimpleFunctional-CZTGuNuR.js → createSimpleFunctional-zlXZooQW.js} +1 -1
- package/dist/assets/{dashboard-CuutW8iv.js → dashboard-BXXgeQ0Q.js} +1 -1
- package/dist/assets/definitions-SNvFDEFS.js +1 -0
- package/dist/assets/dialog-transition-D2vqGksQ.js +1 -0
- package/dist/assets/env-B5V1EC4M.css +1 -0
- package/dist/assets/env-sXAQqKWk.js +1 -0
- package/dist/assets/health-92hh8xXh.css +1 -0
- package/dist/assets/health-Cr34pf2p.js +1 -0
- package/dist/assets/{history-1_NU8azF.js → history-N1iRZaab.js} +1 -1
- package/dist/assets/incoming-Bdqo8z25.css +1 -0
- package/dist/assets/incoming-CNwZa_yD.js +2 -0
- package/dist/assets/{index-irlMYzLh.css → index-B17d4wpZ.css} +1 -1
- package/dist/assets/index-Mxalhei8.js +138 -0
- package/dist/assets/{integrations-BMzWQQpa.js → integrations-BmwFvHgZ.js} +10 -10
- package/dist/assets/integrations-Co8WvCiD.css +1 -0
- package/dist/assets/issues-BbiG7dCV.js +1 -0
- package/dist/assets/layout-B2Ap07aa.js +1 -0
- package/dist/assets/{lazy-NHSwD9FS.js → lazy-BjyT2XvW.js} +1 -1
- package/dist/assets/{learning-Bdi3XRS7.js → learning-CUCuuoHM.js} +1 -1
- package/dist/assets/mdi-Bt90Ns76.js +1 -0
- package/dist/assets/placement-CQy46H3H.js +1 -0
- package/dist/assets/publish-4r_4K5IY.js +3 -0
- package/dist/assets/publish-BFTsAMCF.css +1 -0
- package/dist/assets/pull-requests-BjwokcU0.css +1 -0
- package/dist/assets/pull-requests-DY9jg3cE.js +1 -0
- package/dist/assets/{repository-BL_2bgzC.js → repository-DhXdoMP6.js} +1 -1
- package/dist/assets/ripple-EFNA8EBu.js +11 -0
- package/dist/assets/rolldown-runtime-DBalRfVu.js +1 -0
- package/dist/assets/{session-BdhKrcX4.js → session-BGpiZThC.js} +1 -1
- package/dist/assets/{settings-1rpuL7eR.js → settings-Cj4u-76p.js} +1 -1
- package/dist/assets/settings-D8x4KUqV.css +1 -0
- package/dist/assets/shared-DZETtWRH.js +2 -0
- package/dist/assets/studioGateApi-BXHVBVEc.js +1 -0
- package/dist/assets/studioUrls-DpSS-0z1.js +1 -0
- package/dist/assets/useArchivedVibe64Sessions-BXNg8oES.js +1 -0
- package/dist/assets/useCommand-nWFczmJy.js +1 -0
- package/dist/assets/useEndpointResource-Ds8EDBZ2.js +1 -0
- package/dist/assets/useRealtimeEvent-DrOiU8lJ.js +1 -0
- package/dist/assets/{useUiFeedback-BPBF_0bp.js → useUiFeedback-CMwE4MLs.js} +1 -1
- package/dist/assets/useVibe64ConversationLog-C1xjhFtS.js +1 -0
- package/dist/assets/{useVibe64DatabaseTools-4o6S8eXq.js → useVibe64DatabaseTools-H6H-YJQX.js} +1 -1
- package/dist/assets/useVibe64ProjectScope-B5ogg6jd.js +1 -0
- package/dist/assets/useVibe64SessionData-CnDOFFHb.js +1 -0
- package/dist/assets/{useVibe64SessionSelection-BzL1y_Vq.js → useVibe64SessionSelection-J87nJ9p5.js} +1 -1
- package/dist/assets/{useVibe64SystemGraph-B4RmsC9Y.js → useVibe64SystemGraph-DbSfrYF8.js} +1 -1
- package/dist/assets/{useVibe64Terminal-Cg3idMcy.js → useVibe64Terminal-I7Sf6xMW.js} +1 -1
- package/dist/assets/vibe64ProjectScope.local-B06ABkhI.js +1 -0
- package/dist/assets/vibe64SavedEnvValues-B_QE9aAj.js +1 -0
- package/dist/assets/vibe64SessionFocus-CA-sk8Ri.css +1 -0
- package/dist/assets/vibe64SessionFocus-DlN8NwcE.js +1 -0
- package/dist/assets/{vibe64SessionInfo-BuBUdL-e.js → vibe64SessionInfo-B0uItVOK.js} +1 -1
- package/dist/assets/{vibe64SessionToolDefinitions-BJaJH5LR.js → vibe64SessionToolDefinitions-Dsn8WYmO.js} +1 -1
- package/dist/index.html +56 -46
- package/docs/colleague-usage/account-profile-and-appearance.md +1 -1
- package/docs/colleague-usage/{ai-accounts-and-routing.md → ai-accounts.md} +41 -114
- package/docs/colleague-usage/ai-model-setups.md +159 -0
- package/docs/colleague-usage/ai-onboarding.md +97 -22
- package/docs/colleague-usage/ai-personal-use.md +41 -0
- package/docs/colleague-usage/auto-workflow.md +8 -3
- package/docs/colleague-usage/codex-context-recovery.md +2 -1
- package/docs/colleague-usage/coding-agent-goals.md +7 -4
- package/docs/colleague-usage/coding-agents.md +8 -5
- package/docs/colleague-usage/colleague-watches.md +15 -4
- package/docs/colleague-usage/colleague.md +21 -5
- package/docs/colleague-usage/connected-contributions.md +13 -13
- package/docs/colleague-usage/connected-projects.md +2 -2
- package/docs/colleague-usage/conversation-context.md +1 -1
- package/docs/colleague-usage/dashboard-navigation.md +5 -3
- package/docs/colleague-usage/development-env.md +21 -4
- package/docs/colleague-usage/file-interfaces.md +1 -1
- package/docs/colleague-usage/github-work.md +8 -8
- package/docs/colleague-usage/health-checks.md +52 -18
- package/docs/colleague-usage/incoming-changes.md +3 -3
- package/docs/colleague-usage/integrations.md +5 -3
- package/docs/colleague-usage/learning-course-catalogue.md +3 -3
- package/docs/colleague-usage/learning-environment.md +78 -56
- package/docs/colleague-usage/learning-mode-ui.md +31 -19
- package/docs/colleague-usage/learning-practice-projects.md +15 -4
- package/docs/colleague-usage/learning-teacher-guide.md +10 -4
- package/docs/colleague-usage/learning-with-colleague.md +12 -8
- package/docs/colleague-usage/lesson-authoring.md +13 -13
- package/docs/colleague-usage/lesson-step-bar.md +47 -33
- package/docs/colleague-usage/main-chat-approvals.md +150 -0
- package/docs/colleague-usage/preview-browser-checks.md +5 -1
- package/docs/colleague-usage/preview-starting-application.md +10 -1
- package/docs/colleague-usage/project-language-tools.md +16 -2
- package/docs/colleague-usage/project-settings.md +1 -1
- package/docs/colleague-usage/project-setup.md +17 -7
- package/docs/colleague-usage/publishing.md +187 -0
- package/docs/colleague-usage/running-vibe64-on-your-computer.md +54 -6
- package/docs/colleague-usage/sessions.md +18 -10
- package/docs/colleague-usage/set-up-linux.md +254 -0
- package/docs/colleague-usage/set-up-macos.md +199 -0
- package/docs/colleague-usage/set-up-windows.md +76 -0
- package/docs/colleague-usage/starter-apps.md +23 -6
- package/docs/colleague-usage/teaching-content.md +2 -2
- package/docs/colleague-usage/team-ai-access.md +108 -0
- package/docs/colleague-usage/temporary-chats.md +9 -7
- package/docs/colleague-usage/workspace-preparation.md +50 -1
- package/docs/templates/learn-topic/README.md +3 -3
- package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +2 -1
- package/docs/training-content.md +37 -15
- package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
- package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
- package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
- package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
- package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
- package/node_modules/@jskit-ai/connectors-catalog/patterns/oauth-connection/PATTERN.md +25 -0
- package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
- package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
- package/node_modules/@jskit-ai/kernel/package.json +1 -1
- package/node_modules/@jskit-ai/realtime/package.json +1 -1
- package/node_modules/@jskit-ai/resource-core/package.json +1 -1
- package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
- package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
- package/node_modules/@local/vibe64-accounts/package.json +2 -1
- package/node_modules/@local/vibe64-core/package.json +4 -1
- package/node_modules/@local/vibe64-execution/src/host/execHelper.js +82 -81
- package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +83 -82
- package/node_modules/@local/vibe64-genesis/package.json +1 -0
- package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +118 -68
- package/node_modules/@local/vibe64-genesis/src/server/index.js +536 -449
- package/node_modules/@local/vibe64-genesis/src/server/packaging.js +105 -0
- package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +144 -145
- package/node_modules/@local/vibe64-packaging/package.json +26 -0
- package/node_modules/@local/vibe64-packaging/src/server/packers/capacitor/ShellIcons.java +112 -0
- package/node_modules/@local/vibe64-project/package.json +3 -1
- package/node_modules/@local/vibe64-publishing/package.json +12 -0
- package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +7 -7
- package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +25 -22
- package/node_modules/@local/vibe64-terminals/package.json +2 -1
- package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1341 -1300
- package/node_modules/@local/vibe64-training/package.json +2 -1
- package/package.json +19 -15
- package/server.bundle.mjs +43109 -41089
- package/dist/assets/GithubBrowserTabs-C2NO5l8g.js +0 -1
- package/dist/assets/StudioErrorNotice-CSrUw1QV.js +0 -1
- package/dist/assets/VAlert-P256xaE0.js +0 -1
- package/dist/assets/VAutocomplete-BDb95qJX.js +0 -1
- package/dist/assets/VAvatar-DPzqDH4r.js +0 -1
- package/dist/assets/VBtn-B2MBK2DL.js +0 -1
- package/dist/assets/VCard-mXy0k4aS.js +0 -1
- package/dist/assets/VCheckbox-C7A1ZW4D.js +0 -1
- package/dist/assets/VChip-CcI-Oo2J.js +0 -1
- package/dist/assets/VDialog-Bu3EfKb1.js +0 -1
- package/dist/assets/VDivider-BMEqUoAB.js +0 -1
- package/dist/assets/VExpansionPanels-Dgjrop0V.js +0 -1
- package/dist/assets/VMenu-C_x18lwb.js +0 -1
- package/dist/assets/VOverlay-CeMZurIN.js +0 -1
- package/dist/assets/VRadioGroup-CUu2-KIP.js +0 -1
- package/dist/assets/VRow-Cpw7OHQV.js +0 -1
- package/dist/assets/VSelect-DL3HaA5m.js +0 -2
- package/dist/assets/VSheet-DZWsu0kL.js +0 -1
- package/dist/assets/VSkeletonLoader-CttxM1tw.js +0 -1
- package/dist/assets/VSpacer-Dhmsvk4t.js +0 -1
- package/dist/assets/VSwitch-BRHeDJkH.js +0 -1
- package/dist/assets/VTextField-BR2eZeFT.js +0 -1
- package/dist/assets/VTextField-BiatYyd3.css +0 -1
- package/dist/assets/VTextarea-DbqamXJd.js +0 -1
- package/dist/assets/Vibe64AuthSettingsButton-fY4ZiIFF.js +0 -5
- package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +0 -1
- package/dist/assets/Vibe64DashboardShell-BSq7uXEW.js +0 -1
- package/dist/assets/Vibe64OutputControls-_zhGX9ne.js +0 -8
- package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +0 -1
- package/dist/assets/_slug_-BclonbST.js +0 -24
- package/dist/assets/_slug_-CZ1bxO9C.css +0 -1
- package/dist/assets/app-BNP_n_Tt.js +0 -1
- package/dist/assets/assistantRouting-D4XpXcEf.js +0 -3
- package/dist/assets/client-BWV84wi2.js +0 -2
- package/dist/assets/client-DGrP-2AJ.css +0 -1
- package/dist/assets/definitions-BrMvu6yV.js +0 -1
- package/dist/assets/env-BzRtyO0w.css +0 -1
- package/dist/assets/env-D3KQGvRe.js +0 -1
- package/dist/assets/health-BJvooRnJ.css +0 -1
- package/dist/assets/health-BhoO1d4h.js +0 -1
- package/dist/assets/incoming-DWDrmxyH.css +0 -1
- package/dist/assets/incoming-DzADFGqp.js +0 -2
- package/dist/assets/index-dNxr4Lg9.js +0 -138
- package/dist/assets/integrations-Cq1x-Di9.css +0 -1
- package/dist/assets/issues-Bywux4s7.js +0 -1
- package/dist/assets/mdi-CG9pWOSj.js +0 -1
- package/dist/assets/placement-BF-zIEhA.js +0 -1
- package/dist/assets/pull-requests-CdbhyFOv.css +0 -1
- package/dist/assets/pull-requests-ncmKT3sS.js +0 -1
- package/dist/assets/ripple-BVltMmyV.js +0 -11
- package/dist/assets/settings-BopLnpB0.css +0 -1
- package/dist/assets/shared-DpMvYJO3.js +0 -2
- package/dist/assets/studioGateApi-DcCqiD9V.js +0 -1
- package/dist/assets/studioUrls-DmMMIScP.js +0 -1
- package/dist/assets/useArchivedVibe64Sessions-_LB2XxEa.js +0 -1
- package/dist/assets/useCommand-Bqxb-naz.js +0 -1
- package/dist/assets/useEndpointResource-DWoQ2keu.js +0 -1
- package/dist/assets/useRealtimeEvent-Bwapstla.js +0 -1
- package/dist/assets/useVibe64ConversationLog-BqUI0S5n.js +0 -1
- package/dist/assets/useVibe64Learning-DyqXkpLw.js +0 -1
- package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +0 -1
- package/dist/assets/useVibe64SessionData-B686lToN.js +0 -1
- package/dist/assets/vibe64SessionFocus-CqZNTvYF.js +0 -1
- 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
|
-
|
|
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
|
|
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
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
5
|
-
|
|
6
|
-
|
|
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
|
|
29
|
-
|
|
30
|
-
unavailable: fix its account or
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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**.
|