aemeathcli 1.0.10 → 1.0.12

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 (184) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +66 -54
  3. package/dist/App-JQ622M66.js +4431 -0
  4. package/dist/App-JQ622M66.js.map +1 -0
  5. package/dist/agent-store/architect.md +32 -0
  6. package/dist/agent-store/debugger.md +32 -0
  7. package/dist/agent-store/developer.md +29 -0
  8. package/dist/agent-store/documenter.md +30 -0
  9. package/dist/agent-store/researcher.md +31 -0
  10. package/dist/agent-store/reviewer.md +28 -0
  11. package/dist/agent-store/supervisor.md +37 -0
  12. package/dist/agent-store/tester.md +30 -0
  13. package/dist/api-key-fallback-RJLPM3KH.js +11 -0
  14. package/dist/{api-key-fallback-YQQBOQIL.js.map → api-key-fallback-RJLPM3KH.js.map} +1 -1
  15. package/dist/auth-status-JQJOKUPF.js +13 -0
  16. package/dist/auth-status-JQJOKUPF.js.map +1 -0
  17. package/dist/{chunk-RWCNNAL7.js → chunk-2KMA5RBC.js} +25 -48
  18. package/dist/chunk-2KMA5RBC.js.map +1 -0
  19. package/dist/{chunk-CYQNBB25.js → chunk-2Y7TR6BS.js} +28 -5
  20. package/dist/chunk-2Y7TR6BS.js.map +1 -0
  21. package/dist/{chunk-DAHGLHNR.js → chunk-2ZYK5IJG.js} +6 -141
  22. package/dist/chunk-2ZYK5IJG.js.map +1 -0
  23. package/dist/chunk-36RXCZOV.js +88 -0
  24. package/dist/chunk-36RXCZOV.js.map +1 -0
  25. package/dist/{chunk-DMBPX3RG.js → chunk-7EBLXPL4.js} +9 -9
  26. package/dist/{chunk-DMBPX3RG.js.map → chunk-7EBLXPL4.js.map} +1 -1
  27. package/dist/chunk-BIMQL4AG.js +186 -0
  28. package/dist/chunk-BIMQL4AG.js.map +1 -0
  29. package/dist/{chunk-NBR3GHMT.js → chunk-D275MCIH.js} +39 -7
  30. package/dist/chunk-D275MCIH.js.map +1 -0
  31. package/dist/{chunk-Y5XVD2CD.js → chunk-FFS4T7BZ.js} +109 -82
  32. package/dist/chunk-FFS4T7BZ.js.map +1 -0
  33. package/dist/{chunk-CARHU3DO.js → chunk-GXAJGP2T.js} +64 -16
  34. package/dist/chunk-GXAJGP2T.js.map +1 -0
  35. package/dist/{chunk-I5PZ4JTS.js → chunk-HESQLCLU.js} +4 -4
  36. package/dist/{chunk-I5PZ4JTS.js.map → chunk-HESQLCLU.js.map} +1 -1
  37. package/dist/{chunk-JAXXTYID.js → chunk-IR5HLBMH.js} +2 -2
  38. package/dist/{chunk-JAXXTYID.js.map → chunk-IR5HLBMH.js.map} +1 -1
  39. package/dist/{chunk-MFBHNWGV.js → chunk-K2FCMRXH.js} +11 -19
  40. package/dist/chunk-K2FCMRXH.js.map +1 -0
  41. package/dist/{chunk-H66O5Z2V.js → chunk-KIC7UI5U.js} +41 -6
  42. package/dist/chunk-KIC7UI5U.js.map +1 -0
  43. package/dist/{chunk-MXZSI3AY.js → chunk-KMOAJRDE.js} +42 -10
  44. package/dist/chunk-KMOAJRDE.js.map +1 -0
  45. package/dist/chunk-LQBALETG.js +71 -0
  46. package/dist/chunk-LQBALETG.js.map +1 -0
  47. package/dist/chunk-M3FPQSRU.js +12 -0
  48. package/dist/chunk-M3FPQSRU.js.map +1 -0
  49. package/dist/chunk-NQEUK763.js +26 -0
  50. package/dist/chunk-NQEUK763.js.map +1 -0
  51. package/dist/chunk-OPWAFS6Y.js +38 -0
  52. package/dist/chunk-OPWAFS6Y.js.map +1 -0
  53. package/dist/{chunk-6PDJ45T4.js → chunk-PS4WEFW6.js} +50 -25
  54. package/dist/chunk-PS4WEFW6.js.map +1 -0
  55. package/dist/{chunk-HMJRPNPZ.js → chunk-QK7TKNHV.js} +93 -21
  56. package/dist/chunk-QK7TKNHV.js.map +1 -0
  57. package/dist/{chunk-LSOYPSAT.js → chunk-RADJSEG5.js} +4 -4
  58. package/dist/chunk-RADJSEG5.js.map +1 -0
  59. package/dist/{chunk-4IJD72YB.js → chunk-SNWPI6XJ.js} +7 -7
  60. package/dist/chunk-SNWPI6XJ.js.map +1 -0
  61. package/dist/{chunk-TEVZS4FA.js → chunk-UM7MSLOV.js} +16 -9
  62. package/dist/chunk-UM7MSLOV.js.map +1 -0
  63. package/dist/chunk-VNZ3YTQD.js +232 -0
  64. package/dist/chunk-VNZ3YTQD.js.map +1 -0
  65. package/dist/{chunk-IYW62KKR.js → chunk-WXIN65UG.js} +66 -23
  66. package/dist/chunk-WXIN65UG.js.map +1 -0
  67. package/dist/chunk-XEXWX7C7.js +241 -0
  68. package/dist/chunk-XEXWX7C7.js.map +1 -0
  69. package/dist/{chunk-CGEV3ARR.js → chunk-YCCYXDW7.js} +3 -3
  70. package/dist/chunk-YCCYXDW7.js.map +1 -0
  71. package/dist/chunk-YPQ2MLAV.js +140 -0
  72. package/dist/chunk-YPQ2MLAV.js.map +1 -0
  73. package/dist/chunk-ZCOVMVK4.js +26 -0
  74. package/dist/chunk-ZCOVMVK4.js.map +1 -0
  75. package/dist/{claude-login-5WELXPKT.js → claude-login-AIFIWTYF.js} +9 -9
  76. package/dist/{claude-login-5WELXPKT.js.map → claude-login-AIFIWTYF.js.map} +1 -1
  77. package/dist/cli.js +370 -171
  78. package/dist/cli.js.map +1 -1
  79. package/dist/{codex-login-GZIFXUWD.js → codex-login-LW5X7GAM.js} +10 -10
  80. package/dist/codex-login-LW5X7GAM.js.map +1 -0
  81. package/dist/config-store-NF56VHFU.js +7 -0
  82. package/dist/{config-store-W6FBCQAQ.js.map → config-store-NF56VHFU.js.map} +1 -1
  83. package/dist/conversation-store-7GRDQZD2.js +4 -0
  84. package/dist/conversation-store-7GRDQZD2.js.map +1 -0
  85. package/dist/detect-providers-QICJ5U3R.js +4 -0
  86. package/dist/detect-providers-QICJ5U3R.js.map +1 -0
  87. package/dist/executor-FTABX2AW.js +4 -0
  88. package/dist/{executor-6RIKIGXK.js.map → executor-FTABX2AW.js.map} +1 -1
  89. package/dist/first-run-ADROZVYF.js +230 -0
  90. package/dist/first-run-ADROZVYF.js.map +1 -0
  91. package/dist/{gemini-login-AZGL3CE7.js → gemini-login-TST454MX.js} +9 -9
  92. package/dist/{gemini-login-AZGL3CE7.js.map → gemini-login-TST454MX.js.map} +1 -1
  93. package/dist/index.d.ts +46 -70
  94. package/dist/index.js +79 -468
  95. package/dist/index.js.map +1 -1
  96. package/dist/input-history-BEICE7PT.js +57 -0
  97. package/dist/input-history-BEICE7PT.js.map +1 -0
  98. package/dist/kimi-adapter-7FYOAKOI.js +6 -0
  99. package/dist/{kimi-adapter-JN4HFFHU.js.map → kimi-adapter-7FYOAKOI.js.map} +1 -1
  100. package/dist/{kimi-login-6LUWB7P6.js → kimi-login-3IGVOBJI.js} +9 -9
  101. package/dist/{kimi-login-6LUWB7P6.js.map → kimi-login-3IGVOBJI.js.map} +1 -1
  102. package/dist/logger-KGHUQ4VE.js +3 -0
  103. package/dist/logger-KGHUQ4VE.js.map +1 -0
  104. package/dist/model-discovery-AAJDHRFO.js +6 -0
  105. package/dist/model-discovery-AAJDHRFO.js.map +1 -0
  106. package/dist/native-cli-adapters-CLONTZOA.js +8 -0
  107. package/dist/{native-cli-adapters-OLW3XX57.js.map → native-cli-adapters-CLONTZOA.js.map} +1 -1
  108. package/dist/ollama-adapter-2N5OQIEV.js +5 -0
  109. package/dist/{ollama-adapter-OJQ3FKWK.js.map → ollama-adapter-2N5OQIEV.js.map} +1 -1
  110. package/dist/pathResolver-UVAB2FCW.js +3 -0
  111. package/dist/pathResolver-UVAB2FCW.js.map +1 -0
  112. package/dist/profile-loader-EMLV4J7S.js +162 -0
  113. package/dist/profile-loader-EMLV4J7S.js.map +1 -0
  114. package/dist/registry-LRURZVUL.js +5 -0
  115. package/dist/{registry-AZ2LOHHJ.js.map → registry-LRURZVUL.js.map} +1 -1
  116. package/dist/registry-MVNSXCEF.js +6 -0
  117. package/dist/{registry-H7B3AHPQ.js.map → registry-MVNSXCEF.js.map} +1 -1
  118. package/dist/server-manager-THGZBBZB.js +5 -0
  119. package/dist/{server-manager-PTGBHCLS.js.map → server-manager-THGZBBZB.js.map} +1 -1
  120. package/dist/session-manager-X3DXT53M.js +12 -0
  121. package/dist/{session-manager-XOMDMC77.js.map → session-manager-X3DXT53M.js.map} +1 -1
  122. package/dist/skills/built-in/code-review/SKILL.md +85 -0
  123. package/dist/skills/built-in/commit/SKILL.md +83 -0
  124. package/dist/skills/built-in/debug/SKILL.md +119 -0
  125. package/dist/skills/built-in/plan/SKILL.md +123 -0
  126. package/dist/skills/built-in/refactor/SKILL.md +132 -0
  127. package/dist/skills/built-in/test/SKILL.md +128 -0
  128. package/dist/sqlite-store-7OECRTXM.js +5 -0
  129. package/dist/sqlite-store-7OECRTXM.js.map +1 -0
  130. package/dist/team-manager-2VSMALAA.js +11 -0
  131. package/dist/{team-manager-HC4XGCFY.js.map → team-manager-2VSMALAA.js.map} +1 -1
  132. package/dist/team-state-HZNVMQHT.js +3 -0
  133. package/dist/team-state-HZNVMQHT.js.map +1 -0
  134. package/dist/tmux-manager-57QCUVHU.js +6 -0
  135. package/dist/{tmux-manager-GPYZ3WQH.js.map → tmux-manager-57QCUVHU.js.map} +1 -1
  136. package/dist/tools-KWFSYT56.js +6 -0
  137. package/dist/{tools-TSMXMHIF.js.map → tools-KWFSYT56.js.map} +1 -1
  138. package/package.json +11 -11
  139. package/dist/App-FKRSMFMB.js +0 -2789
  140. package/dist/App-FKRSMFMB.js.map +0 -1
  141. package/dist/api-key-fallback-YQQBOQIL.js +0 -11
  142. package/dist/chunk-4IJD72YB.js.map +0 -1
  143. package/dist/chunk-6PDJ45T4.js.map +0 -1
  144. package/dist/chunk-CARHU3DO.js.map +0 -1
  145. package/dist/chunk-CGEV3ARR.js.map +0 -1
  146. package/dist/chunk-CS5X3BWX.js +0 -27
  147. package/dist/chunk-CS5X3BWX.js.map +0 -1
  148. package/dist/chunk-CYQNBB25.js.map +0 -1
  149. package/dist/chunk-DAHGLHNR.js.map +0 -1
  150. package/dist/chunk-H66O5Z2V.js.map +0 -1
  151. package/dist/chunk-HMJRPNPZ.js.map +0 -1
  152. package/dist/chunk-IYW62KKR.js.map +0 -1
  153. package/dist/chunk-LSOYPSAT.js.map +0 -1
  154. package/dist/chunk-MFBHNWGV.js.map +0 -1
  155. package/dist/chunk-MXZSI3AY.js.map +0 -1
  156. package/dist/chunk-NBR3GHMT.js.map +0 -1
  157. package/dist/chunk-RWCNNAL7.js.map +0 -1
  158. package/dist/chunk-TEVZS4FA.js.map +0 -1
  159. package/dist/chunk-UY2SYSEZ.js +0 -211
  160. package/dist/chunk-UY2SYSEZ.js.map +0 -1
  161. package/dist/chunk-WAHVZH7V.js +0 -260
  162. package/dist/chunk-WAHVZH7V.js.map +0 -1
  163. package/dist/chunk-WPP3PEDE.js +0 -234
  164. package/dist/chunk-WPP3PEDE.js.map +0 -1
  165. package/dist/chunk-Y5XVD2CD.js.map +0 -1
  166. package/dist/claude-adapter-QMLFMSP3.js +0 -6
  167. package/dist/claude-adapter-QMLFMSP3.js.map +0 -1
  168. package/dist/codex-login-GZIFXUWD.js.map +0 -1
  169. package/dist/config-store-W6FBCQAQ.js +0 -6
  170. package/dist/executor-6RIKIGXK.js +0 -4
  171. package/dist/gemini-adapter-6JIHZ7WI.js +0 -6
  172. package/dist/gemini-adapter-6JIHZ7WI.js.map +0 -1
  173. package/dist/kimi-adapter-JN4HFFHU.js +0 -6
  174. package/dist/native-cli-adapters-OLW3XX57.js +0 -6
  175. package/dist/ollama-adapter-OJQ3FKWK.js +0 -6
  176. package/dist/openai-adapter-XU46EN7B.js +0 -6
  177. package/dist/openai-adapter-XU46EN7B.js.map +0 -1
  178. package/dist/registry-AZ2LOHHJ.js +0 -6
  179. package/dist/registry-H7B3AHPQ.js +0 -5
  180. package/dist/server-manager-PTGBHCLS.js +0 -5
  181. package/dist/session-manager-XOMDMC77.js +0 -12
  182. package/dist/team-manager-HC4XGCFY.js +0 -11
  183. package/dist/tmux-manager-GPYZ3WQH.js +0 -6
  184. package/dist/tools-TSMXMHIF.js +0 -6
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AemeathCLI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -8,6 +8,7 @@
8
8
  Agent teams · Split-panel coordination · Role-based routing
9
9
  <br />
10
10
  <br />
11
+ <a href="https://aemeathcli.pages.dev"><img src="https://img.shields.io/badge/website-aemeathcli.pages.dev-34d399?style=flat-square" alt="Website" /></a>
11
12
  <a href="https://www.npmjs.com/package/aemeathcli"><img src="https://img.shields.io/npm/v/aemeathcli?style=flat-square&color=red" alt="npm" /></a>
12
13
  <a href="#installation"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen?style=flat-square" alt="Node.js >= 20" /></a>
13
14
  <a href="#license"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="MIT License" /></a>
@@ -20,11 +21,15 @@
20
21
  ```
21
22
  ╔══════════════════════════════════════════════╗
22
23
  ║ Welcome to AemeathCLI ║
23
- ║ Multi-Model CLI Coding Tool v1.0.0
24
+ ║ Multi-Model CLI Coding Tool v1.0.10
24
25
  ╚══════════════════════════════════════════════╝
25
26
  ```
26
27
 
27
- AemeathCLI orchestrates **multiple AI models** across **parallel agent teams** in your terminal. Route Claude for planning, GPT for coding, Gemini for reviews -- all in split-panel panes (iTerm2 native on macOS, tmux elsewhere) with real-time streaming, hub-and-spoke coordination, cost tracking, and enterprise-grade security.
28
+ AemeathCLI orchestrates **multiple AI models** across **parallel agent teams** in your terminal. Route Claude for planning, GPT for coding, Gemini for reviews -- with real-time streaming, tmux-backed visual orchestration when enabled, cost tracking, and enterprise-grade security.
29
+
30
+ <p align="center">
31
+ <img src="site/screenshots/home.jpg" alt="AemeathCLI launch screen" width="720" />
32
+ </p>
28
33
 
29
34
  <br />
30
35
 
@@ -54,7 +59,7 @@ AemeathCLI orchestrates **multiple AI models** across **parallel agent teams** i
54
59
  Most AI coding tools lock you into a single model. AemeathCLI breaks that ceiling:
55
60
 
56
61
  - **Multi-model orchestration** -- Use the right model for each task. Claude Opus for architecture, GPT-5.2 for implementation, Gemini 2.5 Pro for code review -- in one session.
57
- - **Agent teams** -- Describe what you need in plain English and the LLM designs the team. Agents spawn in iTerm2/tmux split panes with a hub-and-spoke coordination model -- a leader orchestrates, teammates execute, and results are synthesized through a shared board.
62
+ - **Agent teams** -- Describe what you need in plain English and the LLM designs the team. Agents can run under the orchestrator with tmux-backed visual panes when enabled, while a leader orchestrates, teammates execute, and results are synthesized through a shared board.
58
63
  - **Smart routing** -- Define role-based routing rules. When you switch to "review" mode, the system automatically picks the best model for reviewing code.
59
64
  - **Cost-aware** -- Real-time token counting, per-model cost tracking, configurable budget warnings and hard stops. Know exactly what you're spending.
60
65
  - **Skills & MCP** -- Extend functionality with YAML-defined skills and Model Context Protocol servers. Your tools, your workflow.
@@ -69,9 +74,11 @@ Most AI coding tools lock you into a single model. AemeathCLI breaks that ceilin
69
74
  npm install -g aemeathcli
70
75
 
71
76
  # Authenticate with your providers
72
- aemeathcli auth login claude
73
- aemeathcli auth login codex
74
- aemeathcli auth login gemini
77
+ aemeathcli login
78
+
79
+ # For orchestrator mode, also configure API keys
80
+ export ANTHROPIC_API_KEY=your_key_here
81
+ export OPENAI_API_KEY=your_key_here
75
82
 
76
83
  # Start coding
77
84
  aemeathcli "Refactor the authentication module to use JWT tokens"
@@ -87,8 +94,11 @@ That's it. AemeathCLI detects your project, picks the best model, and starts str
87
94
 
88
95
  - **Node.js** >= 20.0.0
89
96
  - **npm** >= 9 (or pnpm / yarn)
90
- - **tmux** (optional, for split-panel mode)
91
- - **iTerm2** (optional, macOS native pane support)
97
+ - **tmux** (optional, for Linux split-panel swarm panes; macOS and Windows use native terminal splits)
98
+ - Native build tools for Node modules such as `node-pty` and `better-sqlite3`
99
+ - macOS: Xcode Command Line Tools
100
+ - Linux: Python, make, and a C/C++ compiler
101
+ - Windows: Visual Studio Build Tools or an equivalent MSVC toolchain
92
102
 
93
103
  ### Install
94
104
 
@@ -102,7 +112,7 @@ The CLI installs two commands: `aemeathcli` and the shorthand `ac`.
102
112
 
103
113
  ```bash
104
114
  aemeathcli --version
105
- # 1.0.0
115
+ # 1.0.10
106
116
  ```
107
117
 
108
118
  ### First Run
@@ -111,7 +121,7 @@ aemeathcli --version
111
121
  aemeathcli config init
112
122
  ```
113
123
 
114
- This launches an interactive setup wizard that walks you through provider authentication and initial configuration.
124
+ This launches an interactive setup wizard that walks you through provider authentication, detects installed agent CLIs, and lets you choose the master provider used for swarm orchestration. SDK-backed swarm features still need `aemeathcli auth set-key <provider>` or matching environment variables when browser login is not enough.
115
125
 
116
126
  <br />
117
127
 
@@ -184,21 +194,26 @@ aemeathcli review src/auth/ src/api/middleware.ts
184
194
  aemeathcli test "Generate tests for the recent changes"
185
195
  ```
186
196
 
187
- ### Team Mode
197
+ ### Swarm Mode
188
198
 
189
- Teams are created through **natural language** in the interactive chat -- no CLI subcommands needed:
199
+ Swarm orchestration now lives inside the default TUI:
190
200
 
191
201
  ```bash
192
- # Start interactive session
202
+ # Start the CLI
193
203
  aemeathcli
194
204
 
195
- # Then describe the team you need:
196
- > Create a team to refactor the authentication module
197
- > I need agents to review this PR from security, architecture, and code quality angles
198
- > Spawn a team to build the new payment feature with planning, coding, and testing
205
+ # Or start with a first task
206
+ aemeathcli "Refactor the authentication module"
199
207
  ```
200
208
 
201
- The LLM designs the optimal team (roles, models, agent count) and spawns each agent in its own split pane. On macOS with iTerm2, panes are native terminal splits. On Linux or inside tmux, panes use tmux splits. Stop a team with `/team stop`.
209
+ Inside the TUI:
210
+
211
+ - Press `Shift+Tab` to switch into swarm mode.
212
+ - The onboarding flow detects supported native agent CLIs and stores your preferred master provider.
213
+ - The master agent owns the left half of the split layout; worker agents stack on the right.
214
+ - AemeathCLI automatically detects your terminal and projects the swarm into native split panes (iTerm2, Ghostty, Terminal.app on macOS; Windows Terminal on Windows; tmux on Linux) while keeping the same hub-and-spoke model.
215
+
216
+ SDK-backed swarm planning still needs a tool-calling-capable provider, so browser login alone may not be enough; configure an API key or environment variable for the provider you want to sponsor the swarm.
202
217
 
203
218
  ```
204
219
  ┌───────────────────────┬───────────────────────┐
@@ -281,24 +296,40 @@ Customize routing in `~/.aemeathcli/config.json`:
281
296
 
282
297
  ## Agent Teams
283
298
 
284
- Create parallel agent teams through natural language. The LLM designs the team, split panes launch automatically, and agents coordinate via a hub-and-spoke model.
299
+ Create parallel agent teams through the default swarm experience. The master agent sponsors specialized workers, optional tmux panes open when enabled, and every team follows a hub-and-spoke model.
285
300
 
286
301
  ### How It Works
287
302
 
288
- 1. **Natural language creation** -- Describe the team you need ("Create a team to review the codebase"). No CLI subcommands or JSON config needed.
289
- 2. **LLM-driven design** -- The active model decides the optimal team: agent count, names, roles, models, and task prompts -- all tailored to your request.
290
- 3. **Split-panel mode** -- Each agent gets its own terminal pane (iTerm2 native splits on macOS, tmux splits on Linux/inside tmux).
291
- 4. **Hub-and-spoke coordination** -- A lead agent orchestrates the effort. All agents share a board directory where they write outputs, read each other's work, and the lead synthesizes a final summary.
292
- 5. **Cross-model teams** -- The LLM assigns different providers per agent: Claude Opus for planning, GPT Codex for coding, Gemini Pro for research -- all in one team.
303
+ 1. **Master-led orchestration** -- Start `aemeathcli`, press `Shift+Tab`, and describe the task. The configured master agent decomposes the work.
304
+ 2. **Profile-driven delegation** -- The supervisor chooses specialized worker profiles such as `developer`, `reviewer`, `tester`, and `architect`.
305
+ 3. **Split-panel mode** -- Each worker gets its own native terminal pane. Supports iTerm2, Ghostty, macOS Terminal.app, Windows Terminal, and tmux.
306
+ 4. **Hub-and-spoke coordination** -- A lead agent orchestrates the effort. Workers execute bounded tasks and results are synthesized by the supervisor.
307
+ 5. **Cross-model teams** -- Different providers can be assigned per worker: Claude for planning, Codex for coding, Gemini for documentation and testing.
293
308
 
294
309
  ### Split-Panel Backends
295
310
 
311
+ AemeathCLI auto-detects your terminal and picks the best split backend:
312
+
296
313
  | Environment | Backend | How |
297
314
  |:------------|:--------|:----|
298
- | **macOS + iTerm2** | Native iTerm2 panes | AppleScript creates vertical/horizontal splits directly in your iTerm2 window |
299
- | **Inside tmux** | tmux splits | Auto-splits the current tmux window for each agent |
300
- | **Outside tmux (Linux)** | tmux session | Creates a new tmux session and attaches |
301
- | **No pane manager** | Single-pane fallback | Tab-based agent switching within the TUI |
315
+ | **macOS iTerm2** | AppleScript | Splits sessions via iTerm2's native AppleScript dictionary |
316
+ | **macOS — Ghostty** | System Events | Simulates Ghostty keybindings (Cmd+D / Cmd+Shift+D) for hub-spoke splits |
317
+ | **macOS Terminal.app** | System Events | Simulates Cmd+D to create native split panes |
318
+ | **Windows Windows Terminal** | wt.exe | Uses `wt split-pane` commands for hub-spoke layout |
319
+ | **Linux (any terminal)** | tmux | Creates or reuses a tmux session with split panes |
320
+ | **Fallback** | In-process | Tab-switchable agent panels when no native pane support is detected |
321
+
322
+ #### macOS — iTerm2 Split Panel
323
+
324
+ <p align="center">
325
+ <img src="site/screenshots/mac-splitpanel.jpg" alt="iTerm2 split panel mode on macOS" width="720" />
326
+ </p>
327
+
328
+ #### Windows Terminal Split Panel
329
+
330
+ <p align="center">
331
+ <img src="site/screenshots/win-splitpanel.jpg" alt="Windows Terminal split panel mode" width="720" />
332
+ </p>
302
333
 
303
334
  ### Hub-and-Spoke Coordination
304
335
 
@@ -343,9 +374,11 @@ Each agent runs a different model selected by the LLM based on role suitability:
343
374
 
344
375
  | Action | How |
345
376
  |:-------|:----|
346
- | Create team | Natural language in chat: "Create a team to build X" |
347
- | View agents | Each agent has its own pane -- click or switch panes |
348
- | Stop team | `/team stop` in the leader pane |
377
+ | Enter swarm mode | Start `aemeathcli` and press `Shift+Tab` |
378
+ | Run one task | `aemeathcli "Build X"` then switch to swarm mode if needed |
379
+ | Focus next agent | `Tab` |
380
+ | Cycle input mode | `Shift+Tab` |
381
+ | Stop the active team | `/team stop` |
349
382
 
350
383
  <br />
351
384
 
@@ -372,7 +405,7 @@ Create a `SKILL.md` file with YAML frontmatter:
372
405
  ---
373
406
  name: my-skill
374
407
  description: Custom skill for my workflow
375
- version: 1.0.0
408
+ version: 1.0.10
376
409
  triggers:
377
410
  - $my-skill
378
411
  - my-skill
@@ -518,7 +551,7 @@ aemeathcli/
518
551
  tools/ Built-in tools (bash, read, write, edit, glob, grep, git, web-fetch)
519
552
  auth/ OAuth PKCE login, credential store, session management
520
553
  teams/ Agent process management, message bus, task store
521
- panes/ tmux/iTerm2 integration, IPC hub, layout engine
554
+ panes/ Split-pane backends (iTerm2, Ghostty, Terminal.app, Windows Terminal, tmux), IPC hub, layout engine
522
555
  skills/ Skill loader, registry, executor
523
556
  mcp/ MCP client, server manager, tool bridge
524
557
  storage/ SQLite store, config store, conversation persistence
@@ -526,8 +559,6 @@ aemeathcli/
526
559
  utils/ Logger, sanitizer, path resolver, retry, token counter
527
560
  ```
528
561
 
529
- **99 source files** &middot; **~14,000 lines of TypeScript** &middot; **Zero `any` types** &middot; **Strict mode + all strict flags**
530
-
531
562
  ### Technology Stack
532
563
 
533
564
  | Layer | Technology |
@@ -584,25 +615,6 @@ npm run test # Vitest
584
615
  npm run test:coverage # With coverage report
585
616
  ```
586
617
 
587
- ### Project Conventions
588
-
589
- - **Interfaces** use `I` prefix: `IModelInfo`, `IChatMessage`, `IToolResult`
590
- - **Error classes** extend `AemeathError` with structured error codes
591
- - **Type imports** use `import type { ... }` consistently
592
- - **No `any`** -- enforced by ESLint `no-explicit-any` + `no-unsafe-*` rules
593
- - **All `catch` blocks** use `catch (error: unknown)` or bare `catch {}`
594
- - **Barrel exports** via `index.ts` in each module
595
-
596
- <br />
597
-
598
618
  ## License
599
619
 
600
620
  MIT
601
-
602
- <br />
603
-
604
- ---
605
-
606
- <p align="center">
607
- Built with Claude, GPT, and Gemini — orchestrated by AemeathCLI itself.
608
- </p>