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.
- package/LICENSE +21 -0
- package/README.md +66 -54
- package/dist/App-JQ622M66.js +4431 -0
- package/dist/App-JQ622M66.js.map +1 -0
- package/dist/agent-store/architect.md +32 -0
- package/dist/agent-store/debugger.md +32 -0
- package/dist/agent-store/developer.md +29 -0
- package/dist/agent-store/documenter.md +30 -0
- package/dist/agent-store/researcher.md +31 -0
- package/dist/agent-store/reviewer.md +28 -0
- package/dist/agent-store/supervisor.md +37 -0
- package/dist/agent-store/tester.md +30 -0
- package/dist/api-key-fallback-RJLPM3KH.js +11 -0
- package/dist/{api-key-fallback-YQQBOQIL.js.map → api-key-fallback-RJLPM3KH.js.map} +1 -1
- package/dist/auth-status-JQJOKUPF.js +13 -0
- package/dist/auth-status-JQJOKUPF.js.map +1 -0
- package/dist/{chunk-RWCNNAL7.js → chunk-2KMA5RBC.js} +25 -48
- package/dist/chunk-2KMA5RBC.js.map +1 -0
- package/dist/{chunk-CYQNBB25.js → chunk-2Y7TR6BS.js} +28 -5
- package/dist/chunk-2Y7TR6BS.js.map +1 -0
- package/dist/{chunk-DAHGLHNR.js → chunk-2ZYK5IJG.js} +6 -141
- package/dist/chunk-2ZYK5IJG.js.map +1 -0
- package/dist/chunk-36RXCZOV.js +88 -0
- package/dist/chunk-36RXCZOV.js.map +1 -0
- package/dist/{chunk-DMBPX3RG.js → chunk-7EBLXPL4.js} +9 -9
- package/dist/{chunk-DMBPX3RG.js.map → chunk-7EBLXPL4.js.map} +1 -1
- package/dist/chunk-BIMQL4AG.js +186 -0
- package/dist/chunk-BIMQL4AG.js.map +1 -0
- package/dist/{chunk-NBR3GHMT.js → chunk-D275MCIH.js} +39 -7
- package/dist/chunk-D275MCIH.js.map +1 -0
- package/dist/{chunk-Y5XVD2CD.js → chunk-FFS4T7BZ.js} +109 -82
- package/dist/chunk-FFS4T7BZ.js.map +1 -0
- package/dist/{chunk-CARHU3DO.js → chunk-GXAJGP2T.js} +64 -16
- package/dist/chunk-GXAJGP2T.js.map +1 -0
- package/dist/{chunk-I5PZ4JTS.js → chunk-HESQLCLU.js} +4 -4
- package/dist/{chunk-I5PZ4JTS.js.map → chunk-HESQLCLU.js.map} +1 -1
- package/dist/{chunk-JAXXTYID.js → chunk-IR5HLBMH.js} +2 -2
- package/dist/{chunk-JAXXTYID.js.map → chunk-IR5HLBMH.js.map} +1 -1
- package/dist/{chunk-MFBHNWGV.js → chunk-K2FCMRXH.js} +11 -19
- package/dist/chunk-K2FCMRXH.js.map +1 -0
- package/dist/{chunk-H66O5Z2V.js → chunk-KIC7UI5U.js} +41 -6
- package/dist/chunk-KIC7UI5U.js.map +1 -0
- package/dist/{chunk-MXZSI3AY.js → chunk-KMOAJRDE.js} +42 -10
- package/dist/chunk-KMOAJRDE.js.map +1 -0
- package/dist/chunk-LQBALETG.js +71 -0
- package/dist/chunk-LQBALETG.js.map +1 -0
- package/dist/chunk-M3FPQSRU.js +12 -0
- package/dist/chunk-M3FPQSRU.js.map +1 -0
- package/dist/chunk-NQEUK763.js +26 -0
- package/dist/chunk-NQEUK763.js.map +1 -0
- package/dist/chunk-OPWAFS6Y.js +38 -0
- package/dist/chunk-OPWAFS6Y.js.map +1 -0
- package/dist/{chunk-6PDJ45T4.js → chunk-PS4WEFW6.js} +50 -25
- package/dist/chunk-PS4WEFW6.js.map +1 -0
- package/dist/{chunk-HMJRPNPZ.js → chunk-QK7TKNHV.js} +93 -21
- package/dist/chunk-QK7TKNHV.js.map +1 -0
- package/dist/{chunk-LSOYPSAT.js → chunk-RADJSEG5.js} +4 -4
- package/dist/chunk-RADJSEG5.js.map +1 -0
- package/dist/{chunk-4IJD72YB.js → chunk-SNWPI6XJ.js} +7 -7
- package/dist/chunk-SNWPI6XJ.js.map +1 -0
- package/dist/{chunk-TEVZS4FA.js → chunk-UM7MSLOV.js} +16 -9
- package/dist/chunk-UM7MSLOV.js.map +1 -0
- package/dist/chunk-VNZ3YTQD.js +232 -0
- package/dist/chunk-VNZ3YTQD.js.map +1 -0
- package/dist/{chunk-IYW62KKR.js → chunk-WXIN65UG.js} +66 -23
- package/dist/chunk-WXIN65UG.js.map +1 -0
- package/dist/chunk-XEXWX7C7.js +241 -0
- package/dist/chunk-XEXWX7C7.js.map +1 -0
- package/dist/{chunk-CGEV3ARR.js → chunk-YCCYXDW7.js} +3 -3
- package/dist/chunk-YCCYXDW7.js.map +1 -0
- package/dist/chunk-YPQ2MLAV.js +140 -0
- package/dist/chunk-YPQ2MLAV.js.map +1 -0
- package/dist/chunk-ZCOVMVK4.js +26 -0
- package/dist/chunk-ZCOVMVK4.js.map +1 -0
- package/dist/{claude-login-5WELXPKT.js → claude-login-AIFIWTYF.js} +9 -9
- package/dist/{claude-login-5WELXPKT.js.map → claude-login-AIFIWTYF.js.map} +1 -1
- package/dist/cli.js +370 -171
- package/dist/cli.js.map +1 -1
- package/dist/{codex-login-GZIFXUWD.js → codex-login-LW5X7GAM.js} +10 -10
- package/dist/codex-login-LW5X7GAM.js.map +1 -0
- package/dist/config-store-NF56VHFU.js +7 -0
- package/dist/{config-store-W6FBCQAQ.js.map → config-store-NF56VHFU.js.map} +1 -1
- package/dist/conversation-store-7GRDQZD2.js +4 -0
- package/dist/conversation-store-7GRDQZD2.js.map +1 -0
- package/dist/detect-providers-QICJ5U3R.js +4 -0
- package/dist/detect-providers-QICJ5U3R.js.map +1 -0
- package/dist/executor-FTABX2AW.js +4 -0
- package/dist/{executor-6RIKIGXK.js.map → executor-FTABX2AW.js.map} +1 -1
- package/dist/first-run-ADROZVYF.js +230 -0
- package/dist/first-run-ADROZVYF.js.map +1 -0
- package/dist/{gemini-login-AZGL3CE7.js → gemini-login-TST454MX.js} +9 -9
- package/dist/{gemini-login-AZGL3CE7.js.map → gemini-login-TST454MX.js.map} +1 -1
- package/dist/index.d.ts +46 -70
- package/dist/index.js +79 -468
- package/dist/index.js.map +1 -1
- package/dist/input-history-BEICE7PT.js +57 -0
- package/dist/input-history-BEICE7PT.js.map +1 -0
- package/dist/kimi-adapter-7FYOAKOI.js +6 -0
- package/dist/{kimi-adapter-JN4HFFHU.js.map → kimi-adapter-7FYOAKOI.js.map} +1 -1
- package/dist/{kimi-login-6LUWB7P6.js → kimi-login-3IGVOBJI.js} +9 -9
- package/dist/{kimi-login-6LUWB7P6.js.map → kimi-login-3IGVOBJI.js.map} +1 -1
- package/dist/logger-KGHUQ4VE.js +3 -0
- package/dist/logger-KGHUQ4VE.js.map +1 -0
- package/dist/model-discovery-AAJDHRFO.js +6 -0
- package/dist/model-discovery-AAJDHRFO.js.map +1 -0
- package/dist/native-cli-adapters-CLONTZOA.js +8 -0
- package/dist/{native-cli-adapters-OLW3XX57.js.map → native-cli-adapters-CLONTZOA.js.map} +1 -1
- package/dist/ollama-adapter-2N5OQIEV.js +5 -0
- package/dist/{ollama-adapter-OJQ3FKWK.js.map → ollama-adapter-2N5OQIEV.js.map} +1 -1
- package/dist/pathResolver-UVAB2FCW.js +3 -0
- package/dist/pathResolver-UVAB2FCW.js.map +1 -0
- package/dist/profile-loader-EMLV4J7S.js +162 -0
- package/dist/profile-loader-EMLV4J7S.js.map +1 -0
- package/dist/registry-LRURZVUL.js +5 -0
- package/dist/{registry-AZ2LOHHJ.js.map → registry-LRURZVUL.js.map} +1 -1
- package/dist/registry-MVNSXCEF.js +6 -0
- package/dist/{registry-H7B3AHPQ.js.map → registry-MVNSXCEF.js.map} +1 -1
- package/dist/server-manager-THGZBBZB.js +5 -0
- package/dist/{server-manager-PTGBHCLS.js.map → server-manager-THGZBBZB.js.map} +1 -1
- package/dist/session-manager-X3DXT53M.js +12 -0
- package/dist/{session-manager-XOMDMC77.js.map → session-manager-X3DXT53M.js.map} +1 -1
- package/dist/skills/built-in/code-review/SKILL.md +85 -0
- package/dist/skills/built-in/commit/SKILL.md +83 -0
- package/dist/skills/built-in/debug/SKILL.md +119 -0
- package/dist/skills/built-in/plan/SKILL.md +123 -0
- package/dist/skills/built-in/refactor/SKILL.md +132 -0
- package/dist/skills/built-in/test/SKILL.md +128 -0
- package/dist/sqlite-store-7OECRTXM.js +5 -0
- package/dist/sqlite-store-7OECRTXM.js.map +1 -0
- package/dist/team-manager-2VSMALAA.js +11 -0
- package/dist/{team-manager-HC4XGCFY.js.map → team-manager-2VSMALAA.js.map} +1 -1
- package/dist/team-state-HZNVMQHT.js +3 -0
- package/dist/team-state-HZNVMQHT.js.map +1 -0
- package/dist/tmux-manager-57QCUVHU.js +6 -0
- package/dist/{tmux-manager-GPYZ3WQH.js.map → tmux-manager-57QCUVHU.js.map} +1 -1
- package/dist/tools-KWFSYT56.js +6 -0
- package/dist/{tools-TSMXMHIF.js.map → tools-KWFSYT56.js.map} +1 -1
- package/package.json +11 -11
- package/dist/App-FKRSMFMB.js +0 -2789
- package/dist/App-FKRSMFMB.js.map +0 -1
- package/dist/api-key-fallback-YQQBOQIL.js +0 -11
- package/dist/chunk-4IJD72YB.js.map +0 -1
- package/dist/chunk-6PDJ45T4.js.map +0 -1
- package/dist/chunk-CARHU3DO.js.map +0 -1
- package/dist/chunk-CGEV3ARR.js.map +0 -1
- package/dist/chunk-CS5X3BWX.js +0 -27
- package/dist/chunk-CS5X3BWX.js.map +0 -1
- package/dist/chunk-CYQNBB25.js.map +0 -1
- package/dist/chunk-DAHGLHNR.js.map +0 -1
- package/dist/chunk-H66O5Z2V.js.map +0 -1
- package/dist/chunk-HMJRPNPZ.js.map +0 -1
- package/dist/chunk-IYW62KKR.js.map +0 -1
- package/dist/chunk-LSOYPSAT.js.map +0 -1
- package/dist/chunk-MFBHNWGV.js.map +0 -1
- package/dist/chunk-MXZSI3AY.js.map +0 -1
- package/dist/chunk-NBR3GHMT.js.map +0 -1
- package/dist/chunk-RWCNNAL7.js.map +0 -1
- package/dist/chunk-TEVZS4FA.js.map +0 -1
- package/dist/chunk-UY2SYSEZ.js +0 -211
- package/dist/chunk-UY2SYSEZ.js.map +0 -1
- package/dist/chunk-WAHVZH7V.js +0 -260
- package/dist/chunk-WAHVZH7V.js.map +0 -1
- package/dist/chunk-WPP3PEDE.js +0 -234
- package/dist/chunk-WPP3PEDE.js.map +0 -1
- package/dist/chunk-Y5XVD2CD.js.map +0 -1
- package/dist/claude-adapter-QMLFMSP3.js +0 -6
- package/dist/claude-adapter-QMLFMSP3.js.map +0 -1
- package/dist/codex-login-GZIFXUWD.js.map +0 -1
- package/dist/config-store-W6FBCQAQ.js +0 -6
- package/dist/executor-6RIKIGXK.js +0 -4
- package/dist/gemini-adapter-6JIHZ7WI.js +0 -6
- package/dist/gemini-adapter-6JIHZ7WI.js.map +0 -1
- package/dist/kimi-adapter-JN4HFFHU.js +0 -6
- package/dist/native-cli-adapters-OLW3XX57.js +0 -6
- package/dist/ollama-adapter-OJQ3FKWK.js +0 -6
- package/dist/openai-adapter-XU46EN7B.js +0 -6
- package/dist/openai-adapter-XU46EN7B.js.map +0 -1
- package/dist/registry-AZ2LOHHJ.js +0 -6
- package/dist/registry-H7B3AHPQ.js +0 -5
- package/dist/server-manager-PTGBHCLS.js +0 -5
- package/dist/session-manager-XOMDMC77.js +0 -12
- package/dist/team-manager-HC4XGCFY.js +0 -11
- package/dist/tmux-manager-GPYZ3WQH.js +0 -6
- 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.
|
|
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 --
|
|
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
|
|
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
|
|
73
|
-
|
|
74
|
-
|
|
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
|
|
91
|
-
-
|
|
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.
|
|
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
|
|
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
|
-
###
|
|
197
|
+
### Swarm Mode
|
|
188
198
|
|
|
189
|
-
|
|
199
|
+
Swarm orchestration now lives inside the default TUI:
|
|
190
200
|
|
|
191
201
|
```bash
|
|
192
|
-
# Start
|
|
202
|
+
# Start the CLI
|
|
193
203
|
aemeathcli
|
|
194
204
|
|
|
195
|
-
#
|
|
196
|
-
|
|
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
|
-
|
|
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
|
|
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. **
|
|
289
|
-
2. **
|
|
290
|
-
3. **Split-panel mode** -- Each
|
|
291
|
-
4. **Hub-and-spoke coordination** -- A lead agent orchestrates the effort.
|
|
292
|
-
5. **Cross-model teams** --
|
|
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
|
|
299
|
-
| **
|
|
300
|
-
| **
|
|
301
|
-
| **
|
|
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
|
-
|
|
|
347
|
-
|
|
|
348
|
-
|
|
|
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.
|
|
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/
|
|
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** · **~14,000 lines of TypeScript** · **Zero `any` types** · **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>
|