tide-commander 1.205.0 → 1.207.0

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 (125) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +379 -344
  3. package/dist/assets/{AudioPlayer-DWljsB_1.js → AudioPlayer-Cy_TeVBx.js} +1 -1
  4. package/dist/assets/{BossLogsModal-BaynJpWe.js → BossLogsModal-CoW7J34q.js} +1 -1
  5. package/dist/assets/{BossSpawnModal-CpGk0Eq6.js → BossSpawnModal-D-lhZlyr.js} +1 -1
  6. package/dist/assets/{ControlsModal-DZD3GSP6.js → ControlsModal-Djve5oZ_.js} +1 -1
  7. package/dist/assets/{DockerLogsModal-DD2rns-R.js → DockerLogsModal-C8KDd44d.js} +1 -1
  8. package/dist/assets/{EmbeddedEditor-DiTc501E.js → EmbeddedEditor-CfNLAzM9.js} +1 -1
  9. package/dist/assets/{FcStdViewer-91AFE0Ij.js → FcStdViewer-B_CE5SK3.js} +1 -1
  10. package/dist/assets/{GcodeViewer-BeQf4EGZ.js → GcodeViewer-DGdbmT6H.js} +1 -1
  11. package/dist/assets/{GlbViewer-BI9nDHrC.js → GlbViewer-q532WTco.js} +1 -1
  12. package/dist/assets/{GmailOAuthSetup-BtJWKq62.js → GmailOAuthSetup-DyxXCAji.js} +1 -1
  13. package/dist/assets/{GoogleOAuthSetup-CGzs-XZT.js → GoogleOAuthSetup-DgmuAdcX.js} +1 -1
  14. package/dist/assets/{IframeModal-Ds3-xCdI.js → IframeModal-BYxamvsL.js} +1 -1
  15. package/dist/assets/{IntegrationsPanel-CXrRxU-x.js → IntegrationsPanel-78v2qMHI.js} +2 -2
  16. package/dist/assets/{LogViewerModal-DurJ7MQD.js → LogViewerModal-DjcAlSIk.js} +1 -1
  17. package/dist/assets/{MonitoringModal-CKaKclyP.js → MonitoringModal-BI2jP9mt.js} +1 -1
  18. package/dist/assets/{PM2LogsModal-B5nf0Euv.js → PM2LogsModal-DYohjAhc.js} +1 -1
  19. package/dist/assets/PluginsPanel-Bik57eKk.js +2 -0
  20. package/dist/assets/{RestoreArchivedAreaModal-rGMIsNKR.js → RestoreArchivedAreaModal-BNvZeakH.js} +1 -1
  21. package/dist/assets/{Scene2DCanvas--cmecCjz.js → Scene2DCanvas--X3aFvUn.js} +1 -1
  22. package/dist/assets/{SceneManager-0ByT2uJb.js → SceneManager-DUF2LvRb.js} +3 -3
  23. package/dist/assets/{SkillsPanel-B4fECgPo.js → SkillsPanel-Dia5yMv6.js} +1 -1
  24. package/dist/assets/{SlackMultiInstanceSetup-Bjrnpo2Y.js → SlackMultiInstanceSetup-Ce2FAGMK.js} +1 -1
  25. package/dist/assets/{SpawnModal-CiPhacNN.js → SpawnModal-Bh4WjS1f.js} +1 -1
  26. package/dist/assets/{StatisticsModal-C218OlUZ.js → StatisticsModal-C4wOkGm4.js} +1 -1
  27. package/dist/assets/{StlViewer-CaSZrsJ9.js → StlViewer-T9Q1QLVU.js} +1 -1
  28. package/dist/assets/{SubordinateAssignmentModal-id7rHl2A.js → SubordinateAssignmentModal-CxRpjOD1.js} +1 -1
  29. package/dist/assets/{ThreeAreaSelector-C4CswHgL.js → ThreeAreaSelector-BCaXHGHO.js} +2 -2
  30. package/dist/assets/{ThreeViewShortcuts-Cux2S_N8.js → ThreeViewShortcuts-FzJ_XmZN.js} +1 -1
  31. package/dist/assets/{TriggerManagerPanel-Byynw1eA.js → TriggerManagerPanel-Bv-VOx4r.js} +1 -1
  32. package/dist/assets/{VideoPlayer-GR_LMIva.js → VideoPlayer-DqVsvgbx.js} +1 -1
  33. package/dist/assets/{WorkflowEditorPanel-7rYyfuLN.js → WorkflowEditorPanel-Bccb2Fz1.js} +1 -1
  34. package/dist/assets/{abnfDiagram-VRR7QNED--G1drj4k.js → abnfDiagram-VRR7QNED-CxgDweJQ.js} +1 -1
  35. package/dist/assets/{arc-cbDDa5pf.js → arc-dt_QJOLm.js} +1 -1
  36. package/dist/assets/{architectureDiagram-ZJ3FMSHR-rF0Q6DjU.js → architectureDiagram-ZJ3FMSHR-D4N51MzU.js} +1 -1
  37. package/dist/assets/{area-logos-DgMtpfmY.js → area-logos-CcHP87oH.js} +1 -1
  38. package/dist/assets/{blockDiagram-677ZJIJ3-87pXpuR2.js → blockDiagram-677ZJIJ3-DqqhdZ31.js} +1 -1
  39. package/dist/assets/{c4Diagram-LMCZKHZV-lhUfFA1m.js → c4Diagram-LMCZKHZV-DHgQZF4A.js} +1 -1
  40. package/dist/assets/channel-EyUMHYTi.js +1 -0
  41. package/dist/assets/{chunk-2Q5K7J3B-n8m4B3nF.js → chunk-2Q5K7J3B-CRFi7Bnd.js} +1 -1
  42. package/dist/assets/{chunk-32BRIVSS-D8POmf7h.js → chunk-32BRIVSS-DmGH-GJx.js} +1 -1
  43. package/dist/assets/{chunk-5VM5RSS4-DHaXwxwK.js → chunk-5VM5RSS4-CkZ8Zz5F.js} +1 -1
  44. package/dist/assets/{chunk-EX3LRPZG-COjCpKmD.js → chunk-EX3LRPZG-DUeDyTvl.js} +1 -1
  45. package/dist/assets/{chunk-JWPE2WC7-Aw4B2_Kc.js → chunk-JWPE2WC7-BfVHwUZG.js} +1 -1
  46. package/dist/assets/{chunk-MOJQB5TN-iPJgKpUI.js → chunk-MOJQB5TN-LLiw5AUo.js} +1 -1
  47. package/dist/assets/{chunk-RYQCIY6F-BQSWclMh.js → chunk-RYQCIY6F-D1sOzyLw.js} +1 -1
  48. package/dist/assets/{chunk-V7JOEXUC-D3tfIWUX.js → chunk-V7JOEXUC-B-XSUcKO.js} +1 -1
  49. package/dist/assets/{chunk-VR4S4FIN-CEvfcnFW.js → chunk-VR4S4FIN-BB-vADmU.js} +1 -1
  50. package/dist/assets/{chunk-XXDRQBXY-CtR6wGug.js → chunk-XXDRQBXY-Df5gYiIF.js} +1 -1
  51. package/dist/assets/classDiagram-OUVF2IWQ-BabuacCG.js +1 -0
  52. package/dist/assets/classDiagram-v2-EOCWNBFH-BabuacCG.js +1 -0
  53. package/dist/assets/{cose-bilkent-JH36ORCC-CSmltbZO.js → cose-bilkent-JH36ORCC-CSof3glh.js} +1 -1
  54. package/dist/assets/{cynefin-VYW2F7L2-Bx8oZmoL.js → cynefin-VYW2F7L2-D6aJlA1P.js} +1 -1
  55. package/dist/assets/{cynefinDiagram-TSTJHNR4-Czl1PIb7.js → cynefinDiagram-TSTJHNR4-2q1eX1qw.js} +1 -1
  56. package/dist/assets/{dagre-VKFMJZFB-BY34Re2C.js → dagre-VKFMJZFB-BAtdrPUU.js} +1 -1
  57. package/dist/assets/{diagram-FQU43EPY-D26fIH9X.js → diagram-FQU43EPY-D2ed_-5E.js} +1 -1
  58. package/dist/assets/{diagram-G47NLZAW-DZzU93fp.js → diagram-G47NLZAW-BBDpBBze.js} +1 -1
  59. package/dist/assets/{diagram-NH7WQ7WH-BsOHy5tf.js → diagram-NH7WQ7WH-DtXw7LdC.js} +1 -1
  60. package/dist/assets/{diagram-OA4YK3LP-CkN9Y1R9.js → diagram-OA4YK3LP-cIiaBgPE.js} +1 -1
  61. package/dist/assets/{diagram-WEI45ONY-HMTcjxSU.js → diagram-WEI45ONY-Ct5E1Ygr.js} +1 -1
  62. package/dist/assets/{ebnfDiagram-CCIWWBDH-CcOGBUbz.js → ebnfDiagram-CCIWWBDH-K1Ygn7oK.js} +1 -1
  63. package/dist/assets/{erDiagram-Q63AITRT-DYUkHrZY.js → erDiagram-Q63AITRT-NeM7n7WP.js} +1 -1
  64. package/dist/assets/{flowDiagram-23GEKE2U-7c_ApgOb.js → flowDiagram-23GEKE2U--UYj6NSc.js} +1 -1
  65. package/dist/assets/{ganttDiagram-NO4QXBWP-kZptXral.js → ganttDiagram-NO4QXBWP-zd6Npx_K.js} +1 -1
  66. package/dist/assets/{gitGraphDiagram-IHSO6WYX-llaJc1KQ.js → gitGraphDiagram-IHSO6WYX-BlTq0xmM.js} +1 -1
  67. package/dist/assets/{index-BEBupvc6.js → index-BUS-htu3.js} +2 -2
  68. package/dist/assets/{index-B2REi-VR.js → index-Bn07Gb4z.js} +2 -2
  69. package/dist/assets/index-C6-IHmlw.js +1 -0
  70. package/dist/assets/{index-_ARvg14-.js → index-CKYI8Bkt.js} +1 -1
  71. package/dist/assets/{index-DgqUdMhN.js → index-COzEkPkG.js} +3 -3
  72. package/dist/assets/{index-CjwAL_ks.js → index-CSkthl1_.js} +1 -1
  73. package/dist/assets/{index-Cu3tVjzy.js → index-CaC-dqG9.js} +5 -5
  74. package/dist/assets/{index-CLh6ux4-.js → index-CcEetYp2.js} +1 -1
  75. package/dist/assets/index-CxM_Bi9f.js +1 -0
  76. package/dist/assets/{infoDiagram-FWYZ7A6U-CXq1Y8Vt.js → infoDiagram-FWYZ7A6U-DK8LZhro.js} +1 -1
  77. package/dist/assets/{ishikawaDiagram-FXEZZL3T-Fg-0UodA.js → ishikawaDiagram-FXEZZL3T-CXl-pW0N.js} +1 -1
  78. package/dist/assets/{journeyDiagram-5HDEW3XC-CdDYINP5.js → journeyDiagram-5HDEW3XC-D0ZWTG40.js} +1 -1
  79. package/dist/assets/{kanban-definition-HUTT4EX6-Bn7vyIoR.js → kanban-definition-HUTT4EX6-D5LHyFdP.js} +1 -1
  80. package/dist/assets/{linear-B3YHUtqR.js → linear-BlP2Riup.js} +1 -1
  81. package/dist/assets/{main-CRyYJvEK.js → main-BLTffCdF.js} +162 -162
  82. package/dist/assets/{main-DxDRFvfz.css → main-C57NihJ3.css} +1 -1
  83. package/dist/assets/{mermaid.core-BUL3cVyt.js → mermaid.core-BSzw4pY8.js} +4 -4
  84. package/dist/assets/{mindmap-definition-LN4V7U3C-D7p1jQwy.js → mindmap-definition-LN4V7U3C-DSmD1ecU.js} +1 -1
  85. package/dist/assets/{pegDiagram-2B236MQR-VtiZuqOm.js → pegDiagram-2B236MQR-DSXlXBOH.js} +1 -1
  86. package/dist/assets/{pieDiagram-ENE6RG2P-Dqe26MWi.js → pieDiagram-ENE6RG2P-BHp-7bcd.js} +1 -1
  87. package/dist/assets/{quadrantDiagram-ABIIQ3AL-BSrE9h67.js → quadrantDiagram-ABIIQ3AL-BGEDIKVL.js} +1 -1
  88. package/dist/assets/{railroadDiagram-RFXS5EU6-PzhFwweq.js → railroadDiagram-RFXS5EU6-BED3Ws5z.js} +1 -1
  89. package/dist/assets/{requirementDiagram-TGXJPOKE-BslMJmSg.js → requirementDiagram-TGXJPOKE-D0pCX66L.js} +1 -1
  90. package/dist/assets/{sankeyDiagram-HTMAVEWB-DXUXJ3fe.js → sankeyDiagram-HTMAVEWB-Bo7pUfaL.js} +1 -1
  91. package/dist/assets/{sequenceDiagram-DBY2YBRQ-DedCZsyI.js → sequenceDiagram-DBY2YBRQ-B0VaWOEp.js} +1 -1
  92. package/dist/assets/{sizeCapture-X5ZJPWSS-BOHdIxpV.js → sizeCapture-X5ZJPWSS-BZmJCnVp.js} +1 -1
  93. package/dist/assets/{stateDiagram-2N3HPSRC-BgBHyOZA.js → stateDiagram-2N3HPSRC-DkrcIkim.js} +1 -1
  94. package/dist/assets/stateDiagram-v2-6OUMAXLB-CxhYcUbl.js +1 -0
  95. package/dist/assets/{swimlanes-5IMT3BWC-D4fkhk_i.js → swimlanes-5IMT3BWC-BRuHXjdF.js} +2 -2
  96. package/dist/assets/swimlanesDiagram-G3AALYLV-C6pQ9VFF.js +8 -0
  97. package/dist/assets/{timeline-definition-FHXFAJF6-cddvPgn6.js → timeline-definition-FHXFAJF6-BBNBrASN.js} +1 -1
  98. package/dist/assets/{vennDiagram-L72KCM5P-BcwsR8SX.js → vennDiagram-L72KCM5P-CRmcC_73.js} +1 -1
  99. package/dist/assets/{wardleyDiagram-EHGQE667-BEu_fD71.js → wardleyDiagram-EHGQE667-D81cH0Ig.js} +1 -1
  100. package/dist/assets/{web-OFKMqcGj.js → web-COwZWape.js} +1 -1
  101. package/dist/assets/{web-fTMyPtmZ.js → web-DYc-4l9Y.js} +1 -1
  102. package/dist/assets/{web-DqtweFWO.js → web-De7YKt9a.js} +1 -1
  103. package/dist/assets/{xychartDiagram-FW5EYKEG-CdL4dM87.js → xychartDiagram-FW5EYKEG-B7on2OOw.js} +1 -1
  104. package/dist/build-info.json +1 -1
  105. package/dist/index.html +2 -2
  106. package/dist/src/packages/server/claude/session-loader.js +243 -39
  107. package/dist/src/packages/server/data/builtin-skills/execute-slash-commands.js +35 -0
  108. package/dist/src/packages/server/data/builtin-skills/index.js +2 -0
  109. package/dist/src/packages/server/plugins/builtin/gmail-pending.js +18 -2
  110. package/dist/src/packages/server/plugins/builtin/shell-commands.js +13 -0
  111. package/dist/src/packages/server/plugins/index.js +5 -1
  112. package/dist/src/packages/server/plugins/manager.js +11 -1
  113. package/dist/src/packages/server/routes/exec.js +177 -27
  114. package/dist/src/packages/server/routes/plugins.js +151 -1
  115. package/dist/src/packages/server/routes/sessions.js +1 -0
  116. package/dist/src/packages/server/services/plugin-shell-command-service.js +477 -0
  117. package/package.json +1 -1
  118. package/dist/assets/PluginsPanel-B3uDAA5Z.js +0 -1
  119. package/dist/assets/channel-D7PSx1th.js +0 -1
  120. package/dist/assets/classDiagram-OUVF2IWQ-D_rYR61X.js +0 -1
  121. package/dist/assets/classDiagram-v2-EOCWNBFH-D_rYR61X.js +0 -1
  122. package/dist/assets/index-BS03Gvh6.js +0 -1
  123. package/dist/assets/index-Oedjb-sU.js +0 -1
  124. package/dist/assets/stateDiagram-v2-6OUMAXLB-DCrkNqNt.js +0 -1
  125. package/dist/assets/swimlanesDiagram-G3AALYLV-CxQNNakx.js +0 -8
package/README.md CHANGED
@@ -1,429 +1,455 @@
1
1
  <p align="center">
2
- <img src="https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/tide-commander-logo.png" alt="Tide Commander" width="400" />
2
+ <img src="https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/tide-commander-logo.png" alt="Tide Commander" width="360" />
3
3
  </p>
4
4
 
5
- <p align="center"><strong>A visual multi-agent orchestrator for Claude Code, Codex, OpenCode, Grok, and Pi</strong></p>
5
+ <h1 align="center">Tide Commander</h1>
6
6
 
7
- ![Tide Commander Preview](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/preview-3d.png)
7
+ <p align="center">
8
+ <strong>The visual AI build suite for a new generation of creators.</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ Turn ideas into software, automations, workflows, documents, data tools, and 3D projects—without living inside an IDE.
13
+ </p>
14
+
15
+ <p align="center">
16
+ Claude Code &nbsp;·&nbsp; Codex &nbsp;·&nbsp; OpenCode &nbsp;·&nbsp; Grok &nbsp;·&nbsp; Pi
17
+ </p>
8
18
 
9
- [![Try Demo](https://img.shields.io/badge/Try%20Demo-tidecommander.com-blue?style=for-the-badge&logo=globe)](https://tidecommander.com/app)
10
- [![Watch the demo](https://img.shields.io/badge/YouTube-Watch%20Demo-red?style=for-the-badge&logo=youtube)](https://www.youtube.com/watch?v=r1Op_xfhqOM)
11
- [![npm version](https://img.shields.io/npm/v/tide-commander?style=for-the-badge&logo=npm)](https://www.npmjs.com/package/tide-commander)
19
+ <p align="center">
20
+ <a href="https://www.npmjs.com/package/tide-commander"><img src="https://img.shields.io/npm/v/tide-commander?style=flat-square&logo=npm" alt="npm version" /></a>
21
+ <a href="https://github.com/deivid11/tide-commander/stargazers"><img src="https://img.shields.io/github/stars/deivid11/tide-commander?style=flat-square&logo=github" alt="GitHub stars" /></a>
22
+ <a href="https://github.com/deivid11/tide-commander/blob/master/LICENSE"><img src="https://img.shields.io/github/license/deivid11/tide-commander?style=flat-square" alt="MIT license" /></a>
23
+ <img src="https://img.shields.io/badge/Node.js-18%2B-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node.js 18+" />
24
+ </p>
12
25
 
13
- Tide Commander is a Claude Code, Codex, and OpenCode orchestrator and manager that lets you deploy, control, and monitor multiple AI coding agents from a single visual interface. Spawn agents, assign tasks, and watch them work in real-time on an RTS-inspired 3D battlefield — or switch to a lightweight 2D canvas or a metrics dashboard.
26
+ <p align="center">
27
+ <a href="https://tidecommander.com/app"><img src="https://img.shields.io/badge/TRY_LIVE_DEMO-OPEN-2563EB?style=for-the-badge&logo=googlechrome&logoColor=white" alt="Try the live demo" /></a>
28
+ <a href="https://www.youtube.com/watch?v=r1Op_xfhqOM"><img src="https://img.shields.io/badge/WATCH_DEMO-YOUTUBE-DC2626?style=for-the-badge&logo=youtube&logoColor=white" alt="Watch the demo" /></a>
29
+ </p>
14
30
 
15
- ## 🚀 Getting Started
31
+ ![Tide Commander visual multi-agent command center](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/preview-3d.png)
16
32
 
17
- Requirements:
18
- - Node.js 18+
19
- - At least one supported CLI provider:
20
- - **Claude Code** — `claude` command in PATH
21
- - **Codex** — `codex` command in PATH (OpenAI Codex CLI)
22
- - **OpenCode** — `opencode` command in PATH ([opencode CLI](https://github.com/nicholasgriffintn/opencode))
23
- - **Grok** — `grok` command in PATH (Grok Build CLI headless mode)
24
- - **Pi** — `pi` command in PATH ([pi coding agent](https://github.com/earendil-works/pi-mono), `npm i -g @earendil-works/pi-coding-agent`)
33
+ > **More than an agent manager. More than an IDE.** Tide Commander is a complete build environment designed around teams of AI agents. Every character is a real process working on real project files with native tools, credentials, context, and session history.
25
34
 
26
- Install and run:
35
+ Traditional creation tools split the work across an IDE, terminal multiplexer, Git client, file browser, automation canvas, infrastructure dashboard, and a growing pile of AI chats. Tide Commander brings those surfaces together so you can move from intent to finished output in one place.
27
36
 
28
- ```bash
29
- # Run directly without installing (recommended)
30
- bunx tide-commander
37
+ You do not have to live in code to use it. Start with natural language and visual controls; open the exact files, commands, diffs, data, or infrastructure only when you want deeper control.
31
38
 
32
- # Or install globally
33
- npm i -g tide-commander@latest
34
- tide-commander start
39
+ ## ⚡ Run it in 30 seconds
40
+
41
+ ```bash
42
+ npx tide-commander@latest
35
43
  ```
36
44
 
37
- Command lifecycle:
45
+ Open **[http://localhost:6200](http://localhost:6200)**. If Claude Code, Codex, OpenCode, Grok, or Pi is already installed and authenticated, you are ready to spawn your first agent.
46
+
47
+ Prefer Bun? Use `bunx tide-commander@latest`.
48
+
49
+ ## Why creators use Tide Commander
50
+
51
+ Traditional IDEs were designed for one person editing one file at a time. AI-native creation is different: multiple agents can research, plan, build, test, document, automate, and operate in parallel. Tide Commander is a workspace for that shift—a visual build suite where you direct the outcome while the team handles the execution.
52
+
53
+ <p align="center"><strong>For solo creators, founders, researchers, operators, engineers, product teams, and anyone who builds with AI.</strong></p>
54
+
55
+ <table>
56
+ <tr>
57
+ <td width="33%" valign="top">
58
+ <h3>✨ Create from intent</h3>
59
+ Start with the outcome you want. Spawn specialists, give them context, and let boss agents coordinate the work.
60
+ </td>
61
+ <td width="33%" valign="top">
62
+ <h3>👀 See the work happen</h3>
63
+ Follow tool calls, PTY output, background jobs, queues, context usage, and blockers live instead of watching silent spinners.
64
+ </td>
65
+ <td width="33%" valign="top">
66
+ <h3>🛠️ Replace tool switching</h3>
67
+ Work with files, source, Git, tests, documents, data, terminals, services, and rich previews in the same build suite.
68
+ </td>
69
+ </tr>
70
+ <tr>
71
+ <td width="33%" valign="top">
72
+ <h3>🔀 Use the right harness</h3>
73
+ Mix Claude, Codex, OpenCode, Grok, and Pi in one team—and migrate a conversation when another runtime fits better.
74
+ </td>
75
+ <td width="33%" valign="top">
76
+ <h3>⚙️ Automate the repeatable</h3>
77
+ Build workflows and triggers, connect your services, or add local plugins and slash commands that bypass the LLM.
78
+ </td>
79
+ <td width="33%" valign="top">
80
+ <h3>📱 Pick up anywhere</h3>
81
+ Reconnect to the same server-side sessions from desktop, mobile, Android, or the browser extension.
82
+ </td>
83
+ </tr>
84
+ </table>
85
+
86
+ ## Everything you need to create
87
+
88
+ | | |
89
+ |---|---|
90
+ | **🎯 Orchestration**<br>Boss/subordinate teams, delegation reports, project areas, task labels, tracking boards, agent memory, prompt stacking, skills, and runtime migration. | **📡 Observability**<br>Structured tool cards, streamed PTY commands, a live background-task rail, server-side message queues, interrupts, context gauges, account limits, and reconnect recovery. |
91
+ | **📁 Unified build workspace**<br>Multi-root file explorer, source editing, Git status/diffs/history, branch comparison, project-wide filename/content search, tests, and `@file` / `@folder` / `@agent` context. | **🧩 Extensibility**<br>Trusted plugins, slash commands, shell scripts, workflows, webhooks, integrations, custom skills/classes/models, REST API, WebSocket API, and browser automation. |
92
+ | **🖼️ Rich previews**<br>Markdown, Mermaid, PlantUML, Office documents, spreadsheets, archives, images, PDF, audio/video, STL, GLB, FreeCAD, and G-code. | **🌐 Flexible UI**<br>3D, 2D, Flat, Dashboard, Commander, and Guake views; Android support; custom themes, shortcuts, sounds, haptics, and 10 UI languages. |
93
+
94
+ ## 🤖 Bring your favorite AI harness
95
+
96
+ Use different harnesses side by side—even inside the same project. Tide Commander normalizes their event streams into one conversation, tool, status, context, and file-diff experience without hiding each provider's native sessions or strengths.
97
+
98
+ | Harness | Required command | Default runtime | Optional persistent/streaming mode |
99
+ |---|---|---|---|
100
+ | **Claude Code** | `claude` | Headless `stream-json` process with stdin follow-ups | Interactive Claude TUI in tmux; general tmux mode can preserve processes across Commander restarts |
101
+ | **Codex** | `codex` | `codex exec --experimental-json` with native session resume | Persistent `codex app-server` for token streaming, detached turns, reconnect, and native thread forking |
102
+ | **OpenCode** | `opencode` | `opencode run --format json` with session resume | Persistent `opencode serve` daemon with streaming and restart recovery |
103
+ | **Grok** | `grok` | Headless `streaming-json` with native resume | Model/effort selection, account profiles, context tracking, and usage gauges |
104
+ | **Pi** | `pi` | `pi --mode json` NDJSON sessions | Persistent `pi --mode rpc` with mid-turn steering, native `/compact`, live model/provider switching, and tmux reconnect |
105
+
106
+ Persistent modes are opt-in under **Settings → General**. Pi can use any model provider loaded by Pi—for example Anthropic, OpenAI Codex, xAI, Gemini, Copilot, OpenCode Go, or a local provider—and Tide displays the active model provider separately from the Pi harness.
107
+
108
+ ### Switch harness without throwing the conversation away
109
+
110
+ The agent editor can change any agent to any supported harness:
111
+
112
+ - **Smart Context** — a compact hand-off fitted to the target context window
113
+ - **Visible Transcript** — a budgeted readable copy of the conversation
114
+ - **Fresh Start** — change the runtime without importing conversation content
115
+
116
+ Claude, Codex, Grok, and Pi have writable native session stores and support imported context. OpenCode can be selected with Fresh Start. Every provider can be the source of a migration. Tide validates the new session, reports imported/dropped content, archives the original, and provides rollback through session history.
117
+
118
+ ## 📦 Installation and CLI
119
+
120
+ ### Requirements
121
+
122
+ - **Node.js 18+** (Node.js 22 is used in CI), or Bun for `bunx`
123
+ - At least one supported AI agent CLI installed and authenticated: `claude`, `codex`, `opencode`, `grok`, or `pi`
124
+ - Optional: `tmux` for process persistence, Pi RPC restart recovery, and Claude interactive TUI mode
125
+
126
+ ### Run without installing
38
127
 
39
128
  ```bash
40
- # Start in background (default)
41
- tide-commander start
129
+ # Bun
130
+ bunx tide-commander@latest
42
131
 
43
- # Stop the background server
44
- tide-commander stop
132
+ # Or npm
133
+ npx tide-commander@latest
134
+ ```
45
135
 
46
- # Check whether server is running
47
- tide-commander status
136
+ Open `http://localhost:6200`.
48
137
 
49
- # Show the latest server logs
50
- tide-commander logs
138
+ ### Install globally
51
139
 
52
- # Follow logs in real time
53
- tide-commander logs --follow
140
+ ```bash
141
+ npm install -g tide-commander@latest
142
+ tide-commander start
54
143
  ```
55
144
 
56
- CLI flags (for `start`):
145
+ The server starts in the background by default:
57
146
 
58
147
  ```bash
59
- tide-commander --help
60
- tide-commander --foreground
61
- tide-commander logs --lines 200
62
- tide-commander --port 8080 --host 0.0.0.0
63
- tide-commander --listen-all --port 8080
64
- tide-commander --https --tls-key ./certs/localhost-key.pem --tls-cert ./certs/localhost.pem
65
- tide-commander --install-local-cert --https
148
+ tide-commander start # Start in background
149
+ tide-commander start --foreground # Keep attached to this terminal
150
+ tide-commander stop
151
+ tide-commander status
152
+ tide-commander logs
153
+ tide-commander logs --follow
154
+ tide-commander version
66
155
  ```
67
156
 
68
- To generate and trust a local certificate automatically (requires `mkcert`):
157
+ Common server options:
69
158
 
70
159
  ```bash
160
+ tide-commander start --port 8080 --host 127.0.0.1
161
+ tide-commander start --listen-all --port 8080
162
+ tide-commander start --restart
163
+ tide-commander start --https --tls-key ./certs/key.pem --tls-cert ./certs/cert.pem
71
164
  tide-commander start --install-local-cert --https
165
+ tide-commander start --https --generate-auth-token
72
166
  ```
73
167
 
74
- ## 🔒 HTTPS Security
168
+ Run `tide-commander --help` for the complete CLI reference.
75
169
 
76
- Use HTTPS/WSS whenever Tide Commander is reachable beyond localhost, especially on shared networks.
170
+ ## 🔒 Remote Access and HTTPS
77
171
 
78
- - Enable HTTPS with existing cert files: `tide-commander start --https --tls-key ./certs/localhost-key.pem --tls-cert ./certs/localhost.pem`
79
- - Generate and install a trusted local cert with `mkcert`: `tide-commander start --install-local-cert --https`
80
- - Set an auth token explicitly: `tide-commander start --https --auth-token <your-token>`
81
- - Generate a secure auth token automatically: `tide-commander start --https --generate-auth-token`
82
- - For development UI over HTTPS, set `DEV_HTTPS=1` and provide `DEV_TLS_KEY_PATH` + `DEV_TLS_CERT_PATH`.
172
+ Tide Commander executes local tools and exposes project files, so use HTTPS/WSS and an auth token whenever it is reachable beyond localhost.
83
173
 
84
- ### Serving HTTP and HTTPS at the same time
174
+ ```bash
175
+ tide-commander start \
176
+ --listen-all \
177
+ --https \
178
+ --install-local-cert \
179
+ --generate-auth-token
180
+ ```
85
181
 
86
- `HTTPS=1` replaces the plain listener — nothing is served in the clear. To serve
87
- **both**, set `HTTPS_PORT` instead: `PORT` keeps serving `http://` while TLS is served
88
- on `HTTPS_PORT`, from the same process, sharing one WebSocket client set.
182
+ You can also serve HTTP and HTTPS from the same process. `PORT` keeps the plain listener and `HTTPS_PORT` adds TLS; both listeners share the same agents and WebSocket clients.
89
183
 
90
184
  ```bash
91
- HTTPS_PORT=5175 \
185
+ PORT=6200 \
186
+ HTTPS_PORT=6201 \
92
187
  TLS_KEY_PATH=~/.tide-commander/certs/localhost-key.pem \
93
188
  TLS_CERT_PATH=~/.tide-commander/certs/localhost.pem \
94
189
  tide-commander start
95
190
  ```
96
191
 
97
- Useful when local browsers can stay on `http://localhost` but remote clients (a phone,
98
- another machine over a VPN) need a secure context for the clipboard API, service workers
99
- and `crypto.randomUUID`. `HTTPS_PORT` takes precedence if `HTTPS=1` is also set.
192
+ This is useful when localhost can stay on HTTP while a phone or another computer needs a secure context. If `HTTPS=1` is used without `HTTPS_PORT`, HTTPS replaces the plain listener.
100
193
 
101
194
  Notes:
102
- - Local certs are stored in `~/.tide-commander/certs/` when using `--install-local-cert`.
103
- - For a cert that also covers a LAN/VPN address, include it in the mkcert SAN list:
104
- `mkcert -cert-file … -key-file … localhost 127.0.0.1 ::1 192.168.1.100`.
105
- - `--generate-auth-token` prints the generated token at startup; save it in a secure password manager.
106
- - If `AUTH_TOKEN` is configured, keep using it with HTTPS for transport encryption plus access control.
107
195
 
108
- ## 🧑‍💻 Development Setup
196
+ - `--install-local-cert` uses `mkcert` and stores certificates in `~/.tide-commander/certs/`.
197
+ - Add LAN or VPN addresses to the certificate SAN list when remote clients use those addresses.
198
+ - Keep generated auth tokens in a password manager.
199
+ - HTTPS protects transport; `AUTH_TOKEN` controls access. Use both remotely.
109
200
 
110
- Use this only if you are developing Tide Commander itself:
201
+ ## 🎖️ Core Concepts
111
202
 
112
- ```bash
113
- # Install dependencies
114
- bun install
203
+ ### Agents, bosses, and delegation
115
204
 
116
- # Start dev frontend + backend
117
- bun run dev
118
- ```
205
+ Every character is a real AI harness process with its own working directory, provider, model, session, prompt stack, memory, permissions, skills, context usage, and task state. A **boss** can own subordinate agents, choose specialists, send tasks through the Tide Commander API, wait for reports, and summarize the team's progress.
119
206
 
120
- Open `http://localhost:5173` in your browser (or `https://localhost:5173` when `DEV_HTTPS=1`).
207
+ Task labels and tracking states make the work visible outside the chat. Agents can report that they are thinking, working, blocked, waiting for subordinates, ready for review, or safe to clear from context.
121
208
 
122
- ## 💡 Why Tide Commander?
209
+ ### Areas
123
210
 
124
- Managing multiple Claude Code terminals at the same time is painful. Tide Commander replaces that mess with a single visual UI where you can see every agent, their status, and their output at a glance.
211
+ Rectangle or circular areas organize agents by project or responsibility. Areas can own multiple project folders, add area-specific instructions to agents inside them, expose an instant tmux terminal rooted in the project, and group agents in Commander and Flat views. Finished areas can be archived and restored without deleting their agents.
125
212
 
126
- Despite looking like a game, Tide Commander is a full-featured Claude Code GUI packed with developer tools: built-in file explorer with git diffs, conversation history with tool formatting, permission controls, and a command palette. For many workflows, an IDE becomes almost unnecessary.
213
+ ### Agent classes and custom models
127
214
 
128
- Think of it like having a team of AI developers at your command. Assign one agent to investigate a bug while another implements a feature. Watch them work in real-time, send follow-up commands, and keep your project moving forward on multiple fronts.
215
+ Classes bundle a role, model, instructions, and default skills. Tide includes Scout, Builder, Debugger, Architect, Warrior, Support, and Boss classes. Custom classes can use uploaded GLB character models with scale, offsets, and idle/walk/working animation mappings.
129
216
 
130
- ## 🎖️ Agent Concepts
217
+ ![Create Agent Class](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/create_agent_class.png)
131
218
 
132
- Tide Commander introduces several powerful concepts for orchestrating your AI agents:
219
+ ### Prompt stacking and memory
133
220
 
134
- ### Boss
135
- The boss agent has context of other agents assigned to him. The boss can delegate tasks. Imagine you have a single boss to talk with, and the boss decides which of the subordinate agents is the most capable of doing the requested task. This saves a lot of time, without having to know which Claude Code terminal has which context. The boss can also give you a summary of the progress of their workers.
221
+ Instructions are composed in layers:
136
222
 
137
- ### Group Areas
138
- Help to organize agents in projects and find them quickly. Areas can have assigned folders, enabling the file explorer on those added folders. Completed or inactive areas can be **archived** to hide them from the battlefield without deleting them - they can be restored at any time.
223
+ 1. Tide Commander base rules
224
+ 2. Global system prompt
225
+ 3. Area prompt
226
+ 4. Agent-class instructions
227
+ 5. Individual agent instructions
228
+ 6. Assigned skills, identity, and persistent agent memory
139
229
 
140
- ### Buildings
141
- 3D models placed on the battlefield with real functionality. Building types include:
142
- - **Server** - Start/stop/restart services with real-time log streaming (supports PM2 and Docker)
143
- - **Database** - Connect to MySQL, PostgreSQL, or Oracle with a built-in SQL query editor, schema browser, and query history
144
- - **Docker** - Manage containers and compose projects with health checks and port detection
145
- - **Link** - Quick URL shortcuts accessible from the field
146
- - **Folder** - Opens the file explorer for a specific directory
147
- - **Boss Building** - Manages multiple subordinate buildings with unified controls
230
+ This lets you define organization-wide conventions once, specialize them by project/class, and keep durable notes per agent without copying the same prompt everywhere.
148
231
 
149
- ### Classes
150
- Like COD or Minecraft classes, you assign a class to the agent character. It has a linked model, a definition of instructions (like a claude.md), and a definition of skills (you can also create skills on the same interface).
232
+ ### Skills
151
233
 
152
- Built-in classes include Scout, Builder, Debugger, Architect, Warrior, Support, and Boss. You can also create **custom classes** with your own 3D models, instructions, and default skills.
234
+ Skills are reusable instruction sets with tool permissions and optional model/context behavior. They can be assigned directly or inherited from a class. Built-ins cover notifications, inter-agent messaging, delegation reports, tracking, persistent memory, streaming execution, Git/release workflows, server/PM2 logs, tests, databases, browser/computer control, HTTP requests, workflows, triggers, Mermaid, Bitbucket review, and backup/restore.
153
235
 
154
- ![Create Agent Class](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/create_agent_class.png)
236
+ Custom skills are Markdown-based and can be managed from the UI. Changes hot-reload into assigned agents while preserving their sessions.
155
237
 
156
- ### Custom 3D Models
157
- You can upload your own 3D character models in **GLB format**. Custom models support animation mapping for idle, walk, and working states. Models are uploaded through the class editor and stored locally. Scaling and position offsets are configurable per model.
238
+ ### Plugins
158
239
 
159
- ### Commander View
160
- A view where you can see all the Claude Code agent terminals on a single view, grouped by areas.
240
+ Trusted local plugins can add:
161
241
 
162
- ![Commander View](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/commander_view.png)
242
+ - slash commands that bypass the LLM
243
+ - structured Guake/Spotlight result cards
244
+ - right-sidebar views and modals
245
+ - interactive actions and WebSocket patches
246
+ - browser-side UI bundles and styles
247
+ - server handlers and integration-backed settings
248
+ - configurable global shortcuts
163
249
 
164
- ### Skills
165
- Built-in and custom skills that extend what agents can do. Skills are like plugins with defined tool permissions and can be assigned to specific agents or classes. Built-in skills include notifications, inter-agent messaging, git workflows, server log access, and streaming command execution. You can create your own skills in TypeScript.
250
+ Recent built-ins expose Gmail inbox cards, Jira ticket search/details, account usage across every harness, task boards, and managed shell commands. Plugins run with Tide Commander's local privileges, so only install code you trust.
166
251
 
167
- ### Snapshots
168
- Save the full conversation history and any created/modified files from an agent's session. Snapshots can be reviewed later with full tool formatting, and files can be restored from them.
252
+ ### Workflows and triggers
169
253
 
170
- ### Secrets
171
- Securely store API keys, tokens, and other credentials. Use `{{SECRET_NAME}}` placeholders in your prompts, and the server injects the real values before sending to Claude. Secrets never leave the server.
254
+ The workflow editor builds state machines from action, wait, decision, and end states. Actions can assign agent tasks, wait for events, set variables, and transition on agent completion, variable conditions, timeouts, cron schedules, triggers, or manual decisions. Running instances support pause, resume, cancel, timelines, variables, reasoning traces, and scoped workflow chat.
172
255
 
173
- ### System Prompts & Prompt Stacking
174
- Define global instructions that apply to all agents, then layer them with class-specific and individual agent customizations for fine-grained control.
256
+ Triggers can react to webhooks, cron/one-shot schedules, Gmail, Slack, Jira, WhatsApp, and Bitbucket. Matching can be structural, LLM-based, or hybrid, with optional variable extraction, signature validation, delivery deduplication, and fire/matcher history.
175
257
 
176
- **Prompt Hierarchy** (stacked in order):
177
- 1. **Tide Commander Base Rules** — Core framework instructions from `CLAUDE.md` and `TIDE_COMMANDER_APPENDED_PROMPT`
178
- 2. **Global System Prompt** — User-defined global instructions (set in Settings > System Prompt) applied to **all agents automatically**
179
- 3. **Agent Class Instructions** — Custom class-specific rules (if agent has a custom class assigned)
180
- 4. **Individual Agent Instructions** — Agent-specific overrides (set per-agent in agent configuration)
181
- 5. **Skills & Agent Identity** — Skill definitions, notifications setup, inter-agent messaging
258
+ ### Buildings
259
+
260
+ Buildings are functional objects, not decoration:
261
+
262
+ | Type | What it does |
263
+ |---|---|
264
+ | **Server** | Custom or PM2 start/stop/restart, logs, health, CPU/memory, and port detection |
265
+ | **Docker** | Create/adopt containers or control Compose projects, logs, health, and ports |
266
+ | **Database** | MySQL, PostgreSQL, and Oracle connections, schema browser, SQL editor, and history |
267
+ | **Terminal** | Persistent browser terminal through ttyd |
268
+ | **Tests** | Scan and run Maven/JUnit, Cucumber, Vitest, and PHPUnit suites down to a method |
269
+ | **HTTP Requests** | Browse and run IntelliJ-style `.http`/`.rest` requests with environments |
270
+ | **Monitor** | System metrics and monitoring |
271
+ | **Folder** | Open a project path in the file explorer |
272
+ | **Link** | Open a dashboard, admin panel, or other URL |
273
+ | **Boss Building** | Aggregate subordinate buildings and control them together |
182
274
 
183
- **How to Use:**
184
- - Set a global system prompt in **Settings > System Prompt** to define coding standards, communication rules, or project conventions that all agents should follow
185
- - Assign custom agent classes to inherit group-level instructions on top of the global prompt
186
- - Add individual agent instructions to override or specialize behavior for a specific agent
187
- - Global prompts persist across agent restarts and server restarts
188
- - Export/import global prompts with your agent configurations
275
+ ## 🖥️ Views and Navigation
189
276
 
190
- **Example Use Cases:**
191
- - Define team coding style guidelines once, apply to all agents via global prompt
192
- - Create "Backend Developer" and "Frontend Developer" classes with specialized instructions
193
- - Override an agent's behavior for specific projects or tasks with individual instructions
194
- - Set security best practices globally, then customize per-agent as needed
277
+ ### 3D battlefield
195
278
 
196
- ### View Modes
197
- Four ways to view the battlefield (cycle with Alt+2):
198
- - **3D View** - Full Three.js battlefield with character models and post-processing (default)
279
+ The default Three.js view provides RTS-style selection, movement, camera controls, buildings, project areas, custom characters, and animated work/status effects.
199
280
 
200
281
  ![3D View](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/example-battlefield.png)
201
282
 
202
- - **2D View** - Lightweight canvas-based rendering for better performance
283
+ ### 2D view
284
+
285
+ A lightweight top-down canvas with the same agents, areas, and buildings for lower-power devices or very large teams.
203
286
 
204
287
  ![2D View](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/preview-2d.png)
205
288
 
206
- - **Dashboard** - Agent status cards, building overview, and metrics
289
+ ### Flat view
207
290
 
208
- ![Dashboard View](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/dashboard_view.png)
291
+ An IDE-style, low-overhead project layout with area status bars, buildings, agent lists, and embedded conversations. It keeps the operational controls without rendering a battlefield.
209
292
 
210
- - **Commander View** - Tactical command panel for agent coordination
293
+ ### Dashboard
211
294
 
212
- ![Commander View](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/commander_view.png)
295
+ Metrics and cards for agent state, current work, errors, context, and infrastructure.
213
296
 
214
- ### Spotlight Search
215
- Press **Ctrl+K** (or Alt+P) to open the command palette. Search for agents by name, class, or current task. Jump to areas, find modified files across all agents, or trigger quick actions.
297
+ ![Dashboard View](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/dashboard_view.png)
216
298
 
217
- ## ✨ Features
299
+ ### Commander view
218
300
 
219
- AI coding orchestration and multi-agent management features:
301
+ A live multi-terminal grid grouped by area. See every conversation at once, switch area tabs, and expand an agent without losing the overview.
220
302
 
221
- - 🎮 **3D Battlefield** - Visual command center with Three.js (also has a lightweight 2D canvas mode)
222
- - 🎯 **RTS Controls** - Click to select, right-click to move, number keys for quick selection
223
- - 📡 **Real-time Activity Feed** - Watch your agents work in real-time
224
- - 🤹 **Multi-Agent Management** - Spawn and control multiple Claude/Codex/OpenCode instances simultaneously
225
- - 💾 **Session Persistence** - Agents resume their Claude Code, Codex, or OpenCode sessions across restarts
226
- - 📊 **Context Tracking** - Mana bar visualization showing agent context usage
227
- - 📁 **File Explorer** - Built-in file browser with git diff viewer for uncommitted changes
303
+ ![Commander View](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/commander_view.png)
228
304
 
229
- ![File Explorer with Git Diffs](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/diffs_view_2.png)
230
- - 📋 **Large Text & Screenshot Paste** - Compact and send large content easily
231
- - ⌨️ **Custom Hotkeys** - Configurable keyboard shortcuts
232
- - 🔐 **Permission Control** - Permissionless or permission-enabled per agent
233
- - 🎬 **Custom 3D Models** - Upload your own GLB models with animation mapping
234
- - 🏗️ **Buildings** - Servers, databases, Docker containers, and links managed from the battlefield
235
- - 🧩 **Skills System** - Built-in and custom skills assignable to agents or classes
236
- - 📸 **Snapshots** - Save conversation history and modified files for later review or restore
237
- - 🔑 **Secrets Management** - Secure storage with `{{PLACEHOLDER}}` injection into prompts
238
- - 🔍 **Spotlight Search** - Command palette (Ctrl+K) to find agents, files, and actions
239
- - 📺 **Commander View** - See all agent terminals at once in a grid, grouped by area
240
- - 📊 **Dashboard View** - Agent status cards, building overview, and metrics
241
- - 🖥️ **Guake Terminal** - Drop-down terminal overlay for agent conversations
242
- - 🔎 **Inline File Inspection** - Click on files added or edited by the agent directly in the chat to view diffs and contents — no need to leave Commander or open an IDE
305
+ ### Guake terminal
243
306
 
244
- ![Inline File Inspection](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/edit_dtails_while_chatting.png)
245
- - 🌐 **Multiplayer** - WebSocket-based multi-user support
246
- - 🌍 **Multilingual** - Full i18n support with 10 languages: English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, and Hindi
247
- - 📱 **Mobile Compatible** - Works on mobile devices and Android (optional APK)
307
+ The main agent conversation surface supports multiple rendering levels, Markdown, syntax highlighting, structured tool cards, permission prompts, Git/building/workflow/tracking side panels, message search, pinned/recent agents, file attachments, screenshots, interrupts, and queued follow-ups.
248
308
 
249
- ## 📲 Resume Anywhere
309
+ ### Spotlight
250
310
 
251
- Your agent sessions are not tied to one machine. Start work on desktop, then reconnect and continue the same conversations from your phone, tablet, or any other computer with remote access to your Tide Commander server.
311
+ Press **Ctrl+K** (or **Alt+P**) to search and act across Tide Commander. Spotlight finds:
252
312
 
253
- This makes it easy to keep tasks moving while you are away from your primary workstation.
313
+ - agents by name, class, area, provider, status, current task, or recent activity
314
+ - current and archived conversations, with ranked matching extracts
315
+ - filenames and file contents across every area project
316
+ - modified files and Git changes
317
+ - buildings, areas, folders, settings, sessions, and commands
318
+ - plugin slash commands and their structured results
254
319
 
255
- ![Mobile Remote Session Resume](docs/img/mobile-remote-resume.png)
320
+ Search is accent-insensitive, supports multi-word matches across different fields, and can open a file directly at the matching line.
256
321
 
257
- ## 📚 Documentation
322
+ ## 🧰 The build workspace that can replace your IDE
258
323
 
259
- Detailed guides for each feature are available in the [`docs/`](docs/) folder:
260
-
261
- | Topic | Description |
262
- |-------|-------------|
263
- | [Buildings](docs/buildings.md) | Server, Database, Docker, and Boss building types with PM2 integration |
264
- | [Custom Classes & 3D Models](docs/custom-classes.md) | Create custom agent classes with your own GLB models and animations |
265
- | [Skills](docs/skills.md) | Built-in and custom skills, tool permissions, and assignment |
266
- | [Snapshots](docs/snapshots.md) | Save and restore conversation history and file artifacts |
267
- | [Secrets](docs/secrets.md) | Secure credential storage with placeholder injection |
268
- | [Architecture](docs/architecture.md) | Runtime architecture, command flow, and incremental improvements |
269
- | [REST API (OpenAPI)](docs/openapi.yaml) | Machine-readable OpenAPI 3.1 spec for `/api` HTTP routes |
270
- | [WebSocket API (AsyncAPI)](docs/asyncapi.yaml) | Machine-readable AsyncAPI 2.6 spec for `/ws` message contracts |
271
- | [Views & UI](docs/views.md) | 3D, 2D, Dashboard, Commander View, Guake terminal, and Spotlight |
272
- | [Android APK](docs/android.md) | Build and install the optional mobile companion app |
273
- | [Docker Deployment](docs/docker.md) | Run Tide Commander in a Docker container |
274
- | [Contributing](CONTRIBUTING.md) | Setup, workflow, and pull request guidelines for contributors |
275
- | [Security Policy](SECURITY.md) | Supported versions, vulnerability reporting, and disclosure process |
276
-
277
- ## 🎮 How to Use
278
-
279
- 1. **Deploy an agent** - Click the **+ New Agent** button ➕
280
- 2. **Configure it** - Give it a name and choose a working directory 📁
281
- 3. **Select it** - Click on the agent in the 3D view or press 1-9 👆
282
- 4. **Send commands** - Type your task in the command bar and press Enter ⌨️
283
- 5. **Watch it work** - The activity feed shows real-time progress 👀
284
- 6. **Send follow-ups** - Agents maintain context, so you can have ongoing conversations 💬
285
-
286
- You can spawn multiple agents, each working in different directories or on different tasks. Switch between them by clicking or using number keys.
287
-
288
- ## ⌨️ Keyboard Shortcuts
324
+ For many projects, the whole creation loop—from brief and research to files, commands, diffs, tests, previews, and operations—can stay inside Tide Commander. The file explorer supports multiple project roots, project-scoped tabs and expanded folders, source editing, Git status, working-tree diffs, binary/image/PDF diffs, branch comparison, file history, and test results. Files changed by an agent are clickable directly from its tool card or message.
289
325
 
290
- | Key | Action |
291
- |-----|--------|
292
- | 1-9 | Select agent by index |
293
- | Escape | Deselect / Close modal |
294
- | Alt+N | Spawn new agent |
295
- | Enter | Send command (when input focused) |
296
- | Ctrl+K / Alt+P | Spotlight search |
297
- | Alt+2 | Cycle view mode (3D / 2D / Dashboard) |
298
- | Alt+S | Toggle sidebar |
299
- | Alt+R | Toggle right panel |
300
- | Alt+E | Toggle file explorer |
301
- | Alt+J / Alt+K | Navigate messages in terminal |
302
- | ` (backtick) | Toggle Guake terminal |
326
+ ![File Explorer with Git Diffs](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/diffs_view_2.png)
303
327
 
304
- Shortcuts are fully customizable in Settings.
328
+ ![Inline File Inspection](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/edit_dtails_while_chatting.png)
305
329
 
306
- ## 🔧 How It Works
330
+ Specialized viewers include:
307
331
 
308
- ### Overview
332
+ - rendered Markdown, Mermaid, PlantUML, SVG, images, and PDF
333
+ - `.docx`, `.docm`, `.odt`, `.fodt`, `.doc`, and `.rtf` documents
334
+ - `.xlsx`, `.xlsm`, `.xls`, `.ods`, `.csv`, and `.tsv` spreadsheets with virtualized grids, filter/sort, selections, and statistics
335
+ - zip/tar/7z/rar and many package/archive formats as browsable trees
336
+ - audio waveforms and video playback
337
+ - interactive STL, GLB, FreeCAD (`.FCStd`), and layer-aware G-code previews
309
338
 
310
- Tide Commander is a Claude Code, Codex, and OpenCode-compatible orchestrator that provides a visual interface for managing multiple AI coding CLI instances simultaneously. Each "agent" you spawn is a real CLI process running in the background, and you can send commands to them and watch their output in real-time.
339
+ You can browse from inside a viewer, drag files out to the desktop, download folders as streaming zip files, and export rendered Markdown to PDF.
311
340
 
312
- ### Core Components
341
+ ## 🔌 Integrations and External Control
313
342
 
314
- **🖥️ Frontend (React + Three.js)**
315
- - 3D battlefield where agents are visualized as characters
316
- - WebSocket connection to receive real-time updates
317
- - Command input for sending tasks to agents
318
- - Activity feed showing what each agent is doing
343
+ Built-in integrations provide settings, secure secrets, API routes, agent skills, and trigger handlers for:
319
344
 
320
- **⚙️ Backend (Node.js + Express)**
321
- - REST API for agent CRUD operations
322
- - WebSocket server for real-time event streaming
323
- - Process manager that spawns and controls Claude, Codex, and OpenCode CLI instances
345
+ - Slack (including multiple instances, messages, threads, files, reactions, and inbound events)
346
+ - Gmail
347
+ - Google Calendar
348
+ - Google Drive
349
+ - Jira Cloud / Service Desk
350
+ - WhatsApp through the local bridge
351
+ - DOCX document generation
324
352
 
325
- **🤖 CLI Integration (Claude + Codex + OpenCode + Grok + Pi)**
326
- - Claude agents run `claude` with `--output-format stream-json` and use stdin for follow-up messages
327
- - Codex agents run `codex exec --experimental-json` and resume via session-based command args
328
- - OpenCode agents run `opencode run --format json` for NDJSON streaming and resume via `-s <sessionId>`
329
- - Grok agents run `grok -p … --output-format streaming-json` (headless) and resume via `--resume <sessionId>`
330
- - Pi agents run `pi --mode json -p …` (headless NDJSON) and resume via `--session <sessionId>`; the optional Pi RPC mode (Config → General) keeps a persistent `pi --mode rpc` process per agent and STEERS mid-turn messages into the live run instead of queueing them. Pi RPC agents can switch between authenticated model providers (for example Anthropic → OpenAI Codex) in the same conversation through the agent editor or Bulk Manage. Any agent can also be migrated to another harness from the agent editor (Claude ⇄ Codex ⇄ Grok ⇄ Pi ⇄ OpenCode, `POST /api/agents/:id/convert-runtime`): Commander copies the visible conversation into a new validated native session for the target runtime — Smart Context, a budgeted visible transcript, or a fresh start — while archiving the original session for one-click rollback from the session history. Claude, Codex, Grok, and Pi have writable session stores; OpenCode is fresh-start only. With tmux mode enabled, Pi RPC processes survive Commander restarts and reconnect automatically
331
- - Events (tool usage, text output, errors) are parsed from stdout for all providers
332
- - Sessions are persisted and can be resumed
333
- - OpenCode reads `.claude/CLAUDE.md` natively (like Claude Code)
353
+ Tide Commander also ships an optional Chromium browser extension that captures console/network failures, opens an agent chat side panel, sends requests or selected DOM/React components as context, and supports multiple Commander servers. macOS Alfred and KDE KRunner launch/search integrations are included in the repository.
334
354
 
335
- ### Architecture
355
+ ## 📡 Live Execution and Session Control
336
356
 
337
- For Mermaid diagrams and deeper design notes, see [`docs/architecture.md`](docs/architecture.md).
357
+ Long commands can run through Tide Commander's exec API in a PTY-backed card. Output streams with ANSI color and terminal redraw handling, survives UI reconnects, can be stopped with its whole process tree, and returns a bounded tail to the agent without hiding the full live output from the user. Active ordinary CLI Bash/Task jobs also appear in the background-task rail.
338
358
 
339
- ![System Architecture](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/system-architecture.png)
359
+ Prompts sent while an agent is busy are kept in a server-side queue. Message bursts are merged into one follow-up, queued items can be interrupted or removed, and supported persistent runtimes reconnect to in-flight turns after a Commander restart. **Ctrl+C** in an open terminal interrupts the active run when no text selection is being copied.
340
360
 
341
- ### Data Storage
361
+ Session history can restore a past conversation onto the same or a new agent, pre-filling its original harness/model/reasoning configuration. Spotlight searches both active and archived sessions.
342
362
 
343
- **Server State** is saved to `~/.local/share/tide-commander/`:
344
- - `agents.json` - Agent configurations (name, position, session mapping, token usage)
345
- - `areas.json` - Drawing areas synced from the frontend
346
- - `buildings.json` - Building configurations and service definitions
347
- - `skills.json` - Custom skill definitions
348
- - `custom-agent-classes.json` - Custom agent class definitions
349
- - `secrets.json` - Encrypted secrets storage
350
- - `snapshots/` - Saved conversation snapshots with file captures
363
+ ## 📲 Resume Anywhere
351
364
 
352
- **Custom Models** are stored in `~/.tide-commander/custom-models/`
365
+ Agent sessions live on the server rather than in one browser tab. Start on desktop and reconnect from a phone, tablet, browser extension, or another computer. The Android app adds local notifications, haptics, optional background connectivity, and in-app APK/UI updates.
353
366
 
354
- **Claude Conversations** are read from `~/.claude/projects/`:
355
- - Claude Code stores session files as JSONL (one JSON object per line)
356
- - Directory names encode the working directory path (e.g., `/home/user/project` → `-home-user-project`)
357
- - Tide Commander reads these to resume sessions and display conversation history
367
+ ![Mobile Remote Session Resume](https://raw.githubusercontent.com/deivid11/tide-commander/master/docs/img/mobile-remote-resume.png)
358
368
 
359
- ## 🔐 Permission Modes
369
+ ## 🎮 What a real workflow looks like
360
370
 
361
- Agents can operate in two permission modes:
371
+ 1. **Create a project area** and attach one or more project folders.
372
+ 2. **Spawn a small team**—for example a boss, a researcher, a builder, and a test/review specialist—using whichever harness fits each role.
373
+ 3. **Give the boss the outcome**, not a list of terminal commands. It can delegate focused tasks and collect reports from its subordinates.
374
+ 4. **Watch execution live** in Commander view: tool cards, streamed commands, background jobs, current prompts, blockers, and context pressure stay visible.
375
+ 5. **Review the result in place** through rendered documents, data grids, 3D previews, file viewers, Git diffs, and test output.
376
+ 6. **Keep the useful context** by sending follow-ups, restoring an older session, or moving the conversation to another harness.
377
+ 7. **Walk away without losing visibility**—notifications and the mobile clients keep you connected to the same running team.
362
378
 
363
- ### Bypass Mode (Default)
364
- Agents run with `--dangerously-skip-permissions`, allowing them to execute any tool (Bash, Edit, Write, etc.) without asking for approval. This is ideal for trusted, autonomous work.
379
+ ## ⌨️ Default Keyboard Shortcuts
365
380
 
366
- ### Interactive Mode
367
- Agents require user approval for potentially dangerous operations. This mode uses a hook-based system:
381
+ | Key | Action |
382
+ |---|---|
383
+ | `Ctrl+K` / `Alt+P` | Open Spotlight |
384
+ | `Tab` | Toggle Commander view |
385
+ | `Alt+N` | Spawn an agent |
386
+ | `Ctrl+1` … `Ctrl+9` | Select agent by index |
387
+ | `Space` | Open the selected agent terminal |
388
+ | `Alt+2` | Cycle 3D / 2D / Flat / Dashboard |
389
+ | `Alt+E` | Toggle file explorer |
390
+ | `Ctrl+L` | Open recent agents and buildings |
391
+ | `Ctrl+Shift+F` | Open the global session finder |
392
+ | `Ctrl+T` | Toggle test results |
393
+ | `Alt+J` / `Alt+K` | Cycle pinned agents in the terminal |
394
+ | `Alt+H` / `Alt+L` | Previous / next agent |
395
+ | `Escape` | Deselect or close the active surface |
396
+
397
+ Shortcuts can be rebound or disabled in Settings. Plugin commands can also define global shortcuts.
398
+
399
+ ## 🔐 Permission Modes and Secrets
400
+
401
+ - **Bypass mode** lets a trusted autonomous CLI execute without approval prompts.
402
+ - **Interactive mode** asks for approval on protected operations and supports remembered file/command patterns. Claude uses Tide's hook-based approval bridge; other harness behavior follows the capabilities of their CLI runtime.
403
+ - **Plugin command sudo** always requires a short-lived user authorization flow. Passwords are not persisted, logged, put in command arguments/environment variables, or exposed to agents.
404
+ - **Secrets** are encrypted in the server store and referenced as `{{SECRET_NAME}}`; the real value is injected server-side instead of being saved in agent prompts.
368
405
 
369
- #### Safe Tools (Auto-Approved)
370
- These read-only tools are automatically approved without prompting:
371
- - `Read`, `Glob`, `Grep` - File reading and searching
372
- - `Task`, `TaskOutput` - Agent task management
373
- - `WebFetch`, `WebSearch` - Web content fetching
374
- - `TodoWrite` - Task list management
375
- - `AskUserQuestion` - User interaction
376
- - `EnterPlanMode`, `ExitPlanMode`, `Skill` - Planning tools
406
+ ## ⚙️ Configuration
377
407
 
378
- #### Dangerous Tools (Require Approval)
379
- These tools prompt for user permission:
380
- - `Bash` - Shell command execution
381
- - `Edit`, `Write` - File modifications
382
- - `NotebookEdit` - Jupyter notebook edits
408
+ The most common environment variables are:
383
409
 
384
- #### Remembered Patterns
385
- When approving a permission request, you can check "Remember this" to auto-approve similar future requests:
386
- - **File operations**: Remembers the directory (e.g., approving `/project/src/file.ts` remembers `/project/src/`)
387
- - **Bash commands**: Remembers the command prefix (e.g., approving `npm test` remembers `npm`)
410
+ | Variable | Default | Description |
411
+ |---|---:|---|
412
+ | `PORT` | `6200` | Backend and production web-app port |
413
+ | `HOST` | `127.0.0.1` | Backend bind host |
414
+ | `VITE_PORT` | `5173` | Development frontend port |
415
+ | `LISTEN_ALL_INTERFACES` | unset | Set to `1` to bind `0.0.0.0` |
416
+ | `AUTH_TOKEN` | unset | HTTP and WebSocket authentication token |
417
+ | `HTTPS` | unset | Set to `1` to replace HTTP with HTTPS/WSS |
418
+ | `HTTPS_PORT` | unset | Add an HTTPS/WSS listener alongside `PORT` |
419
+ | `TLS_KEY_PATH` | `~/.tide-commander/certs/localhost-key.pem` | Backend TLS private key |
420
+ | `TLS_CERT_PATH` | `~/.tide-commander/certs/localhost.pem` | Backend TLS certificate |
421
+ | `DEV_HTTPS` | unset | Enable HTTPS for Vite development |
422
+ | `DEV_TLS_KEY_PATH` | unset | Vite TLS private key |
423
+ | `DEV_TLS_CERT_PATH` | unset | Vite TLS certificate |
424
+ | `CODEX_BINARY` | auto | Override the Codex executable path |
388
425
 
389
- Remembered patterns are stored in `~/.tide-commander/remembered-permissions.json` and can be cleared via the API or by deleting the file.
426
+ See [`.env.example`](.env.example) for the maintained template.
390
427
 
391
- #### Setting Permission Mode
392
- When spawning an agent, select the permission mode in the spawn dialog. You can also change it later by editing the agent configuration.
428
+ ### Data storage
393
429
 
394
- ## ⚙️ Configuration
430
+ Tide Commander stores application state under the XDG data directory, normally `~/.local/share/tide-commander/`. This includes agents, areas, buildings, skills, classes, secrets, session history, workflows, triggers, plugin state, command definitions, and the SQLite integration/monitoring event store. Runtime-only process state is also persisted there for recovery.
395
431
 
396
- Configuration via environment variables (see `.env.example`):
432
+ Provider conversations remain in each CLI's native session store. Tide references and reads those sessions rather than replacing the provider's own history format. Custom 3D models are stored under `~/.tide-commander/custom-models/`.
397
433
 
398
- | Variable | Default | Description |
399
- |----------|---------|-------------|
400
- | `PORT` | 5174 | Backend server port |
401
- | `HOST` | `127.0.0.1` | Backend bind host |
402
- | `VITE_PORT` | 5173 | Vite dev server port |
403
- | `TIDE_SERVER` | `http://localhost:$PORT` | Server URL for hooks |
404
- | `LISTEN_ALL_INTERFACES` | _(unset)_ | Set to `1` to listen on 0.0.0.0 instead of localhost |
405
- | `AUTH_TOKEN` | _(unset)_ | Token for authenticating WebSocket and HTTP connections |
406
- | `HTTPS` | _(unset)_ | Set to `1` to serve backend over HTTPS/WSS **instead of** HTTP |
407
- | `HTTPS_PORT` | _(unset)_ | Serve TLS on this port **in addition to** plain HTTP on `PORT`; takes precedence over `HTTPS` |
408
- | `TLS_KEY_PATH` | `~/.tide-commander/certs/localhost-key.pem` | TLS private key path for backend HTTPS |
409
- | `TLS_CERT_PATH` | `~/.tide-commander/certs/localhost.pem` | TLS certificate path for backend HTTPS |
410
- | `DEV_HTTPS` | _(unset)_ | Set to `1` to run Vite dev server over HTTPS |
411
- | `DEV_TLS_KEY_PATH` | _(unset)_ | TLS private key path for Vite dev HTTPS |
412
- | `DEV_TLS_CERT_PATH` | _(unset)_ | TLS certificate path for Vite dev HTTPS |
413
-
414
- ## 🛠️ Development
434
+ ## 🧑‍💻 Development
415
435
 
416
436
  ```bash
417
- # Run client only
418
- bun run dev:client
437
+ # Install dependencies
438
+ bun install
419
439
 
420
- # Run server only
440
+ # Start Vite (5173) and the API server (6200)
441
+ bun run dev
442
+
443
+ # Individual processes
444
+ bun run dev:client
421
445
  bun run dev:server
422
446
 
423
- # Run both concurrently
424
- bun run dev
447
+ # Quality checks
448
+ bun run lint:types
449
+ bun run lint
450
+ bun run test
425
451
 
426
- # Build for production
452
+ # Production build
427
453
  bun run build
428
454
  ```
429
455
 
@@ -431,78 +457,87 @@ bun run build
431
457
 
432
458
  ```bash
433
459
  docker build -t tide-commander .
434
- docker run -p 5174:5174 \
460
+ docker run -p 6200:6200 \
435
461
  -v ~/.local/share/tide-commander:/root/.local/share/tide-commander \
436
462
  tide-commander
437
463
  ```
438
464
 
439
- > Note: The Docker container needs at least one CLI (`claude`, `codex`, `opencode`, `grok`, or `pi`) accessible inside the container for agent processes to work.
440
-
441
- ## 📱 Android APK (Optional)
465
+ At least one supported AI agent CLI and its credentials must also be available inside the container for agents to run. See the Docker guide for host CLI mounts and deployment details.
442
466
 
443
- Tide Commander can be built as an Android app using Capacitor. The APK connects to your Tide Commander server over the local network, giving you a mobile remote control for your agents.
467
+ ## 📱 Android APK
444
468
 
445
- **Prerequisites:** Android SDK and Java 17+
469
+ Prerequisites: Android SDK and Java 17+.
446
470
 
447
471
  ```bash
448
- # Build debug APK
449
472
  make apk
450
-
451
- # Or build release APK
452
473
  make apk-release
453
-
454
- # Build debug APK pointing to a live dev server
455
474
  make dev-apk CAP_SERVER_URL=http://192.168.1.100:5173
456
475
  ```
457
476
 
458
- The APK will be at `android/app/build/outputs/apk/debug/app-debug.apk`.
477
+ The debug APK is written to `android/app/build/outputs/apk/debug/app-debug.apk`. For a normal APK, leave `CAP_SERVER_URL` unset and configure the Commander server URL in the app. Remote Android connections require the server to listen beyond localhost; HTTPS is strongly recommended.
459
478
 
460
- For non-dev APKs, make sure `CAP_SERVER_URL` is unset before building.
479
+ ## 📚 Documentation
461
480
 
462
- To configure which server the app connects to, set `LISTEN_ALL_INTERFACES=1` on your server and update the server URL in the app settings.
481
+ | Topic | Guide |
482
+ |---|---|
483
+ | Architecture | [Runtime and server architecture](docs/architecture.md) |
484
+ | Buildings | [Servers, Docker, databases, tests, HTTP requests, and more](docs/buildings.md) |
485
+ | Views | [3D, 2D, Dashboard, Commander, Guake, and UI navigation](docs/views.md) |
486
+ | Custom classes | [Custom classes, GLB models, and animation mapping](docs/custom-classes.md) |
487
+ | Skills | [Built-in/custom skills, permissions, assignment, and hot reload](docs/skills.md) |
488
+ | Plugins | [Trusted local plugins, slash commands, renderers, sidebars, and actions](docs/plugins.md) |
489
+ | Secrets | [Encrypted values and prompt placeholders](docs/secrets.md) |
490
+ | Browser bridge | [Browser control and integration](docs/browser-bridge.md) |
491
+ | Headless CAD | [FreeCAD jobs and generated previews](docs/headless-cad.md) |
492
+ | Bitbucket review | [Automated pull-request review triggers](docs/bitbucket-pr-review.md) |
493
+ | Android | [Build and configure the Android app](docs/android.md) |
494
+ | Docker | [Container deployment](docs/docker.md) |
495
+ | REST API | [OpenAPI 3.1 specification](docs/openapi.yaml) |
496
+ | WebSocket API | [AsyncAPI 2.6 specification](docs/asyncapi.yaml) |
497
+ | Releases | [Full changelog](CHANGELOG.md) |
498
+ | Contributing | [Contributor guide](CONTRIBUTING.md) |
499
+ | Security | [Security policy](SECURITY.md) |
463
500
 
464
501
  ## 🐛 Troubleshooting
465
502
 
466
- **Agent stuck in "working" status**
467
- - The Claude process may have died unexpectedly
468
- - Refresh the page - status sync runs on reconnect
469
- - Check server logs for errors
503
+ **A harness is not detected**
470
504
 
471
- **"Claude Code CLI not found"**
472
- - Ensure `claude` is in your PATH
473
- - Run `which claude` to verify installation
474
- - For OpenCode agents, ensure `opencode` is in your PATH (`which opencode`)
505
+ - Run `which claude`, `which codex`, `which opencode`, `which grok`, or `which pi` as appropriate.
506
+ - Authenticate the CLI outside Tide Commander once before spawning an agent.
507
+ - Pi validates that `pi` is the coding agent rather than the unrelated Anaconda utility with the same command name.
475
508
 
476
- **WebSocket disconnects**
477
- - Check that the server is running (default port 6200, or your configured `PORT`)
478
- - Look for CORS or firewall issues
509
+ **An agent is stuck in “working”**
479
510
 
480
- ## 💬 Community
511
+ - Open its background-task rail and server logs to check for a live child process.
512
+ - Use the terminal interrupt/stop action before killing the agent.
513
+ - Persistent Codex, OpenCode, and Pi modes may reconnect to a still-running detached turn after a server restart.
481
514
 
482
- Join the Discord to chat, share feedback, report bugs, or request features:
515
+ **The web app cannot connect**
483
516
 
484
- [![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/MymXXDCvf)
517
+ - The production default is `http://localhost:6200`; development uses `http://localhost:5173` for Vite and proxies to port `6200`.
518
+ - Verify `tide-commander status`, then inspect `tide-commander logs`.
519
+ - For remote clients, verify bind host, firewall, URL scheme, certificate, and auth token.
485
520
 
486
- ## 🗺️ Roadmap
521
+ ## Ready to command the team?
487
522
 
488
- Planned features and improvements — contributions and feedback welcome:
523
+ ```bash
524
+ npx tide-commander@latest
525
+ ```
489
526
 
490
- - [ ] **Test Coverage** — Unit, integration, and E2E tests (currently minimal)
491
- - [x] **Multilingual Support** — i18n with 10 languages (EN, ES, FR, DE, IT, PT, RU, ZH, JA, HI)
492
- - [x] **Codex Integration** — Compatible with OpenAI Codex CLI alongside Claude Code
493
- - [x] **OpenCode Integration** — Compatible with OpenCode CLI as a third provider
494
- - [x] **Grok Integration** — Compatible with Grok Build CLI headless mode as a fourth provider
495
- - [x] **Pi Integration** — Compatible with the Pi coding agent CLI (JSON mode) as a fifth provider
496
- - [ ] **Buildings Plugin System** — External plugin API for community-built building types
497
- - [x] **API Documentation** — OpenAPI/Swagger spec for the REST and WebSocket APIs
498
- - [ ] **Observability** — Error tracking, logging aggregation, and performance monitoring
527
+ <p align="center">
528
+ <a href="https://tidecommander.com/app"><strong>Try the live demo</strong></a>
529
+ &nbsp;·&nbsp;
530
+ <a href="https://www.youtube.com/watch?v=r1Op_xfhqOM"><strong>Watch it in action</strong></a>
531
+ &nbsp;·&nbsp;
532
+ <a href="https://github.com/deivid11/tide-commander/stargazers"><strong>Star the project</strong></a>
533
+ </p>
534
+
535
+ ## 💬 Community
499
536
 
500
- Have a feature idea or found a bug? Open an [issue](https://github.com/your-repo/tide-commander/issues) or drop it in the [Discord](https://discord.gg/MymXXDCvf).
537
+ [![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/MymXXDCvf)
538
+
539
+ Found a bug or have a feature idea? Open a [GitHub issue](https://github.com/deivid11/tide-commander/issues) or join the Discord community. If Tide Commander improves your workflow, a GitHub star helps more creators find it.
501
540
 
502
541
  ## 📄 License
503
542
 
504
543
  MIT
505
-
506
-
507
- Added a line.
508
- Another line added.