@aether-agent/cli 0.2.2 → 0.4.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.
- package/CHANGELOG.md +33 -1
- package/README.md +81 -36
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,4 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## [aether-agent-cli-v0.
|
|
5
|
+
## [0.4.0](https://github.com/jcarver989/aether/compare/aether-agent-cli-v0.3.3...aether-agent-cli-v0.4.0) - 2026-05-03
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- *(aether-cli)* Support user-level settings
|
|
10
|
+
|
|
11
|
+
### Other
|
|
12
|
+
|
|
13
|
+
- *(aether-cli)* Resolve user-level settings from aether home
|
|
14
|
+
|
|
15
|
+
## [0.3.3](https://github.com/jcarver989/aether/compare/aether-agent-cli-v0.3.2...aether-agent-cli-v0.3.3) - 2026-04-29
|
|
16
|
+
|
|
17
|
+
### Other
|
|
18
|
+
|
|
19
|
+
- *(aether-cli)* Fix backticks
|
|
20
|
+
- *(aether-cli)* correct binary references and slash command docs
|
|
21
|
+
|
|
22
|
+
## [0.3.2](https://github.com/jcarver989/aether/compare/aether-agent-cli-v0.3.1...aether-agent-cli-v0.3.2) - 2026-04-29
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- *(aether-cli)* Auto retry on llm errors
|
|
27
|
+
|
|
28
|
+
### Other
|
|
29
|
+
|
|
30
|
+
- *(aether-cli)* Support strings in settings as file paths
|
|
31
|
+
- Re-add top level prompt and mcp settings
|
|
32
|
+
- More consistently use the term settings over config
|
|
33
|
+
- *(aether-cli)* Update cli to use new settings stucts
|
|
34
|
+
- *(aether-core)* Begin to normalize config and config sources for mcp and prompts
|
|
35
|
+
- *(aether-cli)* Quiet noisy acp logs
|
|
36
|
+
|
|
37
|
+
## [aether-agent-cli-v0.3.1] - 2026-04-27
|
package/README.md
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
# aether-agent-cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The Aether CLI ships as a single binary, **`aether`**, with subcommands for each mode of use:
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
-
|
|
5
|
+
- `aether` — interactive TUI (default when run with no args)
|
|
6
|
+
- `aether headless` — single-prompt headless run for scripting/CI
|
|
7
|
+
- `aether acp` — [Agent Client Protocol (ACP)](https://agentclientprotocol.com/overview/introduction) server for editor/IDE integration (e.g. Zed)
|
|
8
|
+
- `aether agent new|list|remove` — manage project agents
|
|
9
|
+
- `aether show-prompt` — print the fully-assembled system prompt (debugging)
|
|
7
10
|
|
|
8
11
|
## Table of Contents
|
|
9
12
|
|
|
10
13
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
|
11
14
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
|
12
15
|
|
|
16
|
+
- [Install](#install)
|
|
13
17
|
- [Quick Start](#quick-start)
|
|
14
|
-
- [
|
|
15
|
-
- [
|
|
16
|
-
- [
|
|
18
|
+
- [Interactive TUI](#interactive-tui)
|
|
19
|
+
- [Headless](#headless)
|
|
20
|
+
- [ACP server](#acp-server)
|
|
17
21
|
- [Choosing a Model](#choosing-a-model)
|
|
18
22
|
- [Editor Integration (ACP)](#editor-integration-acp)
|
|
19
23
|
- [Zed](#zed)
|
|
@@ -25,30 +29,58 @@ Binary package containing Aether's two runnable entrypoints:
|
|
|
25
29
|
|
|
26
30
|
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
|
27
31
|
|
|
28
|
-
##
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
Pick whichever fits your workflow:
|
|
29
35
|
|
|
30
|
-
|
|
36
|
+
```bash
|
|
37
|
+
# npm (cross-platform)
|
|
38
|
+
npm install -g @aether-agent/cli
|
|
31
39
|
|
|
32
|
-
|
|
40
|
+
# Homebrew (macOS / Linux)
|
|
41
|
+
brew install jcarver989/tap/aether
|
|
42
|
+
|
|
43
|
+
# Shell installer (macOS / Linux)
|
|
44
|
+
curl --proto '=https' --tlsv1.2 -LsSf \
|
|
45
|
+
https://github.com/jcarver989/aether/releases/latest/download/aether-agent-cli-installer.sh | sh
|
|
46
|
+
|
|
47
|
+
# From source
|
|
48
|
+
cargo install aether-agent-cli
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
To build from a workspace checkout:
|
|
33
52
|
|
|
34
53
|
```bash
|
|
35
54
|
cargo build --release -p aether-agent-cli
|
|
55
|
+
# binary lands at target/release/aether
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Quick Start
|
|
59
|
+
|
|
60
|
+
### Interactive TUI
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
aether
|
|
36
64
|
```
|
|
37
65
|
|
|
38
|
-
|
|
66
|
+
If the project has no `.aether/settings.json`, the binary launches an onboarding wizard before starting the TUI.
|
|
39
67
|
|
|
40
|
-
###
|
|
68
|
+
### Headless
|
|
41
69
|
|
|
42
70
|
```bash
|
|
43
|
-
|
|
71
|
+
aether headless -m anthropic:claude-sonnet-4-5-20250929 "Refactor auth module"
|
|
44
72
|
```
|
|
45
73
|
|
|
46
|
-
|
|
74
|
+
Useful flags: `-a/--agent` (named agent from settings), `-C/--cwd`, `--system-prompt`, `--output text|json`, `--events tool_call,tool_result,...`, `--mcp-config <path>`, `--settings-file <path>` / `--settings-json <json>`. Pass the prompt as positional args, or pipe it on stdin.
|
|
75
|
+
|
|
76
|
+
### ACP server
|
|
47
77
|
|
|
48
78
|
```bash
|
|
49
|
-
|
|
79
|
+
aether acp --model anthropic:claude-sonnet-4-5-20250929 --mcp-config mcp.json
|
|
50
80
|
```
|
|
51
81
|
|
|
82
|
+
Flags: `--agent <name>` (mutually exclusive with `--model`), `--reasoning-effort low|medium|high|xhigh`, `--log-dir <path>`, plus the same `--settings-file` / `--settings-json` options.
|
|
83
|
+
|
|
52
84
|
## Choosing a Model
|
|
53
85
|
|
|
54
86
|
Aether supports multiple LLM providers using a `provider:model` string format:
|
|
@@ -65,18 +97,19 @@ Aether supports multiple LLM providers using a `provider:model` string format:
|
|
|
65
97
|
|
|
66
98
|
### Zed
|
|
67
99
|
|
|
68
|
-
Add to your Zed `settings.json` (Main Menu
|
|
100
|
+
Add to your Zed `settings.json` (Main Menu → "Open Settings File"):
|
|
69
101
|
|
|
70
102
|
```json
|
|
71
103
|
{
|
|
72
104
|
"agent_servers": {
|
|
73
105
|
"Aether Agent": {
|
|
74
|
-
"command": "/path/to/aether
|
|
106
|
+
"command": "/path/to/aether",
|
|
75
107
|
"args": [
|
|
108
|
+
"acp",
|
|
76
109
|
"--model",
|
|
77
110
|
"zai:GLM-4.6",
|
|
78
111
|
"--mcp-config",
|
|
79
|
-
"/path/to/
|
|
112
|
+
"/path/to/your/project/mcp.json"
|
|
80
113
|
],
|
|
81
114
|
"env": {
|
|
82
115
|
"RUST_LOG": "debug",
|
|
@@ -90,7 +123,7 @@ Add to your Zed `settings.json` (Main Menu -> "Open Settings File"):
|
|
|
90
123
|
Then open the [Agent Panel](https://zed.dev/docs/ai/agent-panel) and select "New Aether Agent Thread".
|
|
91
124
|
|
|
92
125
|
**Important:** Update the paths and configuration:
|
|
93
|
-
- `command`: Full path to
|
|
126
|
+
- `command`: Full path to the `aether` binary (e.g. the result of `which aether` or `target/release/aether`)
|
|
94
127
|
- `--mcp-config`: Path to your MCP configuration file
|
|
95
128
|
- Set the appropriate API key env var for your model provider
|
|
96
129
|
|
|
@@ -117,18 +150,20 @@ The `mcp.json` file configures MCP tool servers:
|
|
|
117
150
|
}
|
|
118
151
|
```
|
|
119
152
|
|
|
120
|
-
- **coding** — Filesystem tools (read, write, bash, etc.)
|
|
121
|
-
- **skills** — Slash commands and reusable prompts from configured
|
|
153
|
+
- **coding** — Filesystem tools (read, write, bash, etc.) plus optional auto-read rules from configured `--rules-dir` paths
|
|
154
|
+
- **skills** — Slash commands and reusable prompts loaded from the configured `--dir` paths
|
|
122
155
|
|
|
123
156
|
## Slash Commands
|
|
124
157
|
|
|
125
|
-
|
|
158
|
+
Slash commands are markdown files served by the `skills` MCP server from any directory passed via `--dir`. Each entry is either a single `.md` file or a directory containing `SKILL.md` (plus optional supporting files). To make a prompt appear as a `/slash-command` in the TUI / ACP client, set `userInvocable: true` in its frontmatter.
|
|
126
159
|
|
|
127
|
-
**Example**
|
|
160
|
+
**Example** `.aether/skills/plan.md`:
|
|
128
161
|
|
|
129
162
|
```markdown
|
|
130
163
|
---
|
|
131
164
|
description: Create a detailed implementation spec for a task
|
|
165
|
+
argumentHint: <task description>
|
|
166
|
+
userInvocable: true
|
|
132
167
|
---
|
|
133
168
|
|
|
134
169
|
You are an expert software architect. Create a comprehensive technical specification.
|
|
@@ -137,13 +172,20 @@ You are an expert software architect. Create a comprehensive technical specifica
|
|
|
137
172
|
$ARGUMENTS
|
|
138
173
|
```
|
|
139
174
|
|
|
140
|
-
**
|
|
141
|
-
-
|
|
142
|
-
-
|
|
175
|
+
**Frontmatter fields:**
|
|
176
|
+
- `description` — shown in command pickers
|
|
177
|
+
- `argumentHint` — optional hint string for the argument
|
|
178
|
+
- `userInvocable` — exposes the prompt as a `/slash-command`
|
|
179
|
+
- `agentInvocable` — exposes the prompt as a skill that other agents can `get_skills` against
|
|
180
|
+
- `tags` — used by the `search_notes` / `list_skills` discovery surface
|
|
181
|
+
|
|
182
|
+
**Parameter syntax in the body:**
|
|
183
|
+
- `$ARGUMENTS` — full argument string (e.g. `/plan add user auth` → `add user auth`)
|
|
184
|
+
- `$1`, `$2`, `$3` — positional arguments
|
|
143
185
|
|
|
144
186
|
## Settings
|
|
145
187
|
|
|
146
|
-
Project-level agent configuration
|
|
188
|
+
Project-level agent configuration lives in `.aether/settings.json` at your project root. This file defines agents (modes and sub-agents), default prompts, and default MCP server configuration.
|
|
147
189
|
|
|
148
190
|
### Agents (Modes and Sub-agents)
|
|
149
191
|
|
|
@@ -151,8 +193,9 @@ Define agents with specific model, prompts, and tool configurations:
|
|
|
151
193
|
|
|
152
194
|
```json
|
|
153
195
|
{
|
|
154
|
-
"
|
|
155
|
-
"
|
|
196
|
+
"agent": "planner",
|
|
197
|
+
"prompts": [".aether/prompts/shared.md", "AGENTS.md"],
|
|
198
|
+
"mcps": [".aether/mcp.json"],
|
|
156
199
|
"agents": [
|
|
157
200
|
{
|
|
158
201
|
"name": "planner",
|
|
@@ -160,9 +203,7 @@ Define agents with specific model, prompts, and tool configurations:
|
|
|
160
203
|
"model": "anthropic:claude-sonnet-4-5",
|
|
161
204
|
"reasoningEffort": "high",
|
|
162
205
|
"userInvocable": true,
|
|
163
|
-
"agentInvocable": true
|
|
164
|
-
"prompts": [".aether/prompts/planner.md"],
|
|
165
|
-
"mcpServers": [".aether/mcp/planner.json"]
|
|
206
|
+
"agentInvocable": true
|
|
166
207
|
},
|
|
167
208
|
{
|
|
168
209
|
"name": "researcher",
|
|
@@ -171,6 +212,7 @@ Define agents with specific model, prompts, and tool configurations:
|
|
|
171
212
|
"userInvocable": false,
|
|
172
213
|
"agentInvocable": true,
|
|
173
214
|
"prompts": [".aether/prompts/researcher.md"],
|
|
215
|
+
"mcps": [".aether/researcher-mcp.json"],
|
|
174
216
|
"tools": {
|
|
175
217
|
"allow": ["coding__grep", "coding__read_file", "coding__glob"],
|
|
176
218
|
"deny": []
|
|
@@ -188,14 +230,17 @@ Define agents with specific model, prompts, and tool configurations:
|
|
|
188
230
|
}
|
|
189
231
|
```
|
|
190
232
|
|
|
233
|
+
- **`agent`** — Optional default user-invocable agent name.
|
|
234
|
+
- **Top-level `prompts`** — Ordered default prompt sources used by agents that do not define their own `prompts`. File paths can be written as strings; typed objects support `{ "type": "text", "text": "..." }`, `{ "type": "file", "path": "..." }`, and `{ "type": "glob", "pattern": "..." }`.
|
|
235
|
+
- **Top-level `mcps`** — Ordered default MCP config sources used by agents that do not define their own `mcps`. File paths can be written as strings; typed objects support `{ "type": "file", "path": "...", "proxy": false }` and inline `{ "type": "inline", "servers": { ... } }` entries.
|
|
236
|
+
- **Agent `prompts`** — Optional ordered prompt sources that override top-level `prompts` for that agent. Supports the same string shorthand and typed objects as top-level `prompts`.
|
|
237
|
+
- **Agent `mcps`** — Optional ordered MCP config sources that override top-level `mcps` for that agent. Supports the same string shorthand and typed objects as top-level `mcps`.
|
|
191
238
|
- **`userInvocable: true`** — Agent appears as a mode option in ACP clients (e.g., Wisp's Shift+Tab)
|
|
192
239
|
- **`agentInvocable: true`** — Agent can be spawned as a sub-agent
|
|
193
|
-
- **`prompts`** — Explicit prompt file references (supports glob patterns)
|
|
194
|
-
- **`mcpServers`** — Path to MCP configuration file (optional, overrides top-level `mcpServers`)
|
|
195
240
|
- **`tools`** — Filter which MCP tools the agent can use (optional). Supports `allow` (allowlist) and `deny` (blocklist) with trailing `*` wildcards. If both are set, `allow` is applied first, then `deny` removes from the result. Omit or leave empty to allow all tools.
|
|
196
|
-
|
|
197
|
-
|
|
241
|
+
|
|
242
|
+
You can scaffold settings interactively via `aether agent new`, list current agents with `aether agent list`, and remove one with `aether agent remove <name>`.
|
|
198
243
|
|
|
199
244
|
## Logs
|
|
200
245
|
|
|
201
|
-
|
|
246
|
+
ACP runs write logs to `--log-dir` (default: `/tmp/aether-acp-logs/`). Control verbosity with the `RUST_LOG` environment variable.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"hasInstallScript": true,
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"name": "@aether-agent/cli",
|
|
26
|
-
"version": "0.
|
|
26
|
+
"version": "0.4.0"
|
|
27
27
|
},
|
|
28
28
|
"node_modules/@isaacs/cliui": {
|
|
29
29
|
"engines": {
|
|
@@ -542,5 +542,5 @@
|
|
|
542
542
|
}
|
|
543
543
|
},
|
|
544
544
|
"requires": true,
|
|
545
|
-
"version": "0.
|
|
545
|
+
"version": "0.4.0"
|
|
546
546
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/jcarver989/aether/releases/download/aether-agent-cli-v0.
|
|
3
|
+
"https://github.com/jcarver989/aether/releases/download/aether-agent-cli-v0.4.0"
|
|
4
4
|
],
|
|
5
5
|
"bin": {
|
|
6
6
|
"aether": "run-aether.js"
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"zipExt": ".tar.xz"
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
|
-
"version": "0.
|
|
69
|
+
"version": "0.4.0",
|
|
70
70
|
"volta": {
|
|
71
71
|
"node": "18.14.1",
|
|
72
72
|
"npm": "9.5.0"
|