@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 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.2.2] - 2026-04-20
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
- Binary package containing Aether's two runnable entrypoints:
3
+ The Aether CLI ships as a single binary, **`aether`**, with subcommands for each mode of use:
4
4
 
5
- - **`aether-acp`**[Agent Client Protocol (ACP)](https://agentclientprotocol.com/overview/introduction) server for editor/IDE integration (e.g. Zed)
6
- - **`aether`**Headless CLI for single-prompt usage
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
- - [Build](#build)
15
- - [Run the CLI](#run-the-cli)
16
- - [Run the ACP server](#run-the-acp-server)
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
- ## Quick Start
32
+ ## Install
33
+
34
+ Pick whichever fits your workflow:
29
35
 
30
- ### Build
36
+ ```bash
37
+ # npm (cross-platform)
38
+ npm install -g @aether-agent/cli
31
39
 
32
- From the workspace root:
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
- Binaries will be at `target/release/aether-acp` and `target/release/aether`.
66
+ If the project has no `.aether/settings.json`, the binary launches an onboarding wizard before starting the TUI.
39
67
 
40
- ### Run the CLI
68
+ ### Headless
41
69
 
42
70
  ```bash
43
- cargo run -p aether-agent-cli --bin aether -- -m anthropic:claude-sonnet-4-5-20250929 "Refactor auth module"
71
+ aether headless -m anthropic:claude-sonnet-4-5-20250929 "Refactor auth module"
44
72
  ```
45
73
 
46
- ### Run the ACP server
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
- cargo run -p aether-agent-cli --bin aether-acp -- --model anthropic:claude-sonnet-4-5-20250929 --mcp-config mcp.json
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 -> "Open Settings File"):
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/target/release/aether-acp",
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/aether/mcp.json"
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 your built `aether-acp` binary
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.) + optional automatic read rules from configured `--rules-dir` paths
121
- - **skills** — Slash commands and reusable prompts from configured prompt directories
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
- Create markdown files in `~/.aether/commands/` to define custom slash commands.
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** `~/.aether/commands/plan.md`:
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
- **Parameter syntax:**
141
- - `$ARGUMENTS` — Full argument string (e.g., `/plan add user auth` -> "add user auth")
142
- - `$1`, `$2`, `$3` — Positional arguments
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 is centralized in `.aether/settings.json` in your project root. This file defines agents (modes and sub-agents), prompts, and MCP server 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
- "prompts": [".aether/SYSTEM.md", "AGENTS.md"],
155
- "mcpServers": [".aether/mcp.json"],
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
- - Top-level `prompts` are inherited by all agents
197
- - Top-level `mcpServers` is the default MCP config for all agents
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
- Logs are written to `--log-dir` (default: `/tmp/aether-acp-logs/`). Control verbosity with the `RUST_LOG` environment variable.
246
+ ACP runs write logs to `--log-dir` (default: `/tmp/aether-acp-logs/`). Control verbosity with the `RUST_LOG` environment variable.
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "@aether-agent/cli",
26
- "version": "0.2.2"
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.2.2"
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.2.2"
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.2.2",
69
+ "version": "0.4.0",
70
70
  "volta": {
71
71
  "node": "18.14.1",
72
72
  "npm": "9.5.0"