chutes-build 0.3.0 → 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.
Files changed (3) hide show
  1. package/PRIVACY.md +39 -12
  2. package/README.md +63 -8
  3. package/package.json +7 -7
package/PRIVACY.md CHANGED
@@ -8,13 +8,18 @@ sessions. There is no hidden opt-in or installation identifier.
8
8
 
9
9
  The CLI may store configuration, an encrypted or OS-protected credential entry
10
10
  where supported, sessions, logs, local exports, and user memory under
11
- `~/.chutes-build` (or `CHUTES_BUILD_HOME`). Project memory is maintained in
12
- `memories.md`. Known secret formats are filtered before memory writes, but users
13
- should still avoid entering secrets into prompts.
11
+ `~/.chutes-build` (or `CHUTES_BUILD_HOME`). Plugins, user roles/personas, and
12
+ managed bundled-agent definitions use that same root; setting
13
+ `CHUTES_BUILD_HOME` does not fall back to those resources in the default home.
14
+ Project memory is maintained in `memories.md`. Known secret formats are filtered
15
+ before memory writes, but users should still avoid entering secrets into
16
+ prompts.
14
17
 
15
18
  `chutes-build trace` always creates a local archive. Remote session sharing and
16
- upstream managed configuration commands are disabled. Automatic update checks
17
- are disabled.
19
+ search, remote workspace exposure, upstream managed configuration commands, and
20
+ automatic update checks are disabled. Session storage is forced to local mode
21
+ even if inherited write-back settings are present. Updates are installed
22
+ manually.
18
23
 
19
24
  Sampling diagnostics are disabled by default. When explicitly enabled with
20
25
  `--log-sampling` or `CHUTES_BUILD_LOG_SAMPLING=1`, the local
@@ -34,22 +39,38 @@ remote preview, thumbnail, codec, waveform, or playback service is used.
34
39
 
35
40
  ## Outbound connections
36
41
 
37
- Connections occur only when required by an explicit feature:
42
+ Connections occur when required by startup model/account discovery or an
43
+ explicit hosted feature:
38
44
 
39
45
  | Destination | Purpose | Data sent |
40
46
  | --- | --- | --- |
41
- | `model-router-ten.vercel.app` | default Chutes-compatible model routing | prompts, selected tool schemas, model responses, Chutes API credential |
42
- | `llm.chutes.ai` | Chutes inference and model catalog | prompts/model requests and Chutes API credential |
43
- | `api.chutes.ai` | Chutes account and media APIs | requested media parameters/assets and Chutes API credential |
47
+ | `model-router-ten.vercel.app` | default Chutes-compatible model routing | prompts, selected context/tool schemas, model inputs, Chutes API credential |
48
+ | `llm.chutes.ai` | Chutes inference, model catalog, semantic memory, voice transcription, OCR, and vision | model requests and the selected inputs: prompts/context, memory chunks, audio, images, PDF pages, or sampled video frames; Chutes API credential |
49
+ | `api.chutes.ai` | Chutes account and media APIs | account requests, media parameters and user-selected media assets; Chutes API credential |
50
+ | `api.chutes.ai/idp` | OAuth sign-in and refresh | authorization code or refresh token, PKCE verifier, public/custom client ID, and a custom client secret only when configured |
44
51
  | `chutes.ai/docs`, `chutes.ai/news` | mandatory primary-source verification for Chutes topics | requested official page URLs; no Chutes API credential |
45
52
  | `context7.com` | current library documentation | library names and documentation queries; credentials and known secrets are rejected |
46
53
  | DuckDuckGo or Brave Search | web search | search query; Brave receives only its dedicated key |
47
54
  | User-selected web pages | web fetch/browser automation | normal HTTP/browser traffic required by the requested action |
48
55
  | User-configured MCP servers/plugins | external tools | data required by the selected tool and its own configuration |
49
56
 
50
- The Chutes API credential is accepted only for allowlisted Chutes and router
51
- hosts. It is never reused for web search, Context7, arbitrary websites, MCP
52
- servers, or browser automation.
57
+ The ambient Chutes API credential and cached Chutes session token are accepted
58
+ only for allowlisted HTTPS Chutes and router hosts. They are never reused for a
59
+ custom endpoint, web search, Context7, arbitrary websites, MCP servers, or
60
+ browser automation. Custom inference models must declare a dedicated
61
+ `api_key`/`env_key`; a custom model-catalog endpoint uses
62
+ `CHUTES_MODELS_API_KEY`.
63
+
64
+ Model catalog and account usage requests may run during startup after
65
+ authentication. Prompts and repository content are not sent by those discovery
66
+ requests. They leave the machine only in a model/tool request that needs them.
67
+
68
+ Semantic memory is local at rest, but hybrid recall uses a Chutes-hosted
69
+ embedding model and therefore sends the selected memory text chunks to Chutes.
70
+ Use `--no-memory` to disable both memory recall and writes for that session.
71
+ Voice capture is manual and sends the recorded audio only after activation.
72
+ OCR, vision, video analysis, and media generation send only the inputs selected
73
+ for that operation.
53
74
 
54
75
  For Chutes research, the agent prefers direct official pages and indexes over a
55
76
  broad search query. Search and page requests must not include credentials,
@@ -67,6 +88,12 @@ Browser actions can still disclose data to websites the user asks the agent to
67
88
  visit. Review navigation, form submissions, uploads, and authenticated actions
68
89
  before approval.
69
90
 
91
+ `chutes-build mcp list --json` intentionally reports configuration structure,
92
+ not credential material: environment/header values and URL credentials, query,
93
+ and fragment components are redacted. MCP servers and plugins still receive
94
+ the data required by tools the user enables, so their own privacy policies
95
+ apply.
96
+
70
97
  ## Disabling stateful features
71
98
 
72
99
  - Start with `--no-memory` to disable agent memory for a session.
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  One CLI, no compromises: an interactive terminal UI, a full coding agent
12
12
  runtime, native Chutes model routing, parallel subagents, multimodal
13
13
  generation, web research, browser automation, and local memory — with
14
- telemetry, remote trace upload, and phone-home update checks off by default.
14
+ telemetry, remote trace upload, and phone-home update checks disabled.
15
15
 
16
16
  ![Chutes Build terminal UI](assets/chutes/screenshot/chutes-build.png)
17
17
 
@@ -24,6 +24,7 @@ telemetry, remote trace upload, and phone-home update checks off by default.
24
24
  - [Quick start](#quick-start)
25
25
  - [Features](#features)
26
26
  - [Configuration](#configuration)
27
+ - [CLI reference](#cli-reference)
27
28
  - [Privacy & security](#privacy--security)
28
29
  - [Project](#project)
29
30
 
@@ -31,7 +32,7 @@ telemetry, remote trace upload, and phone-home update checks off by default.
31
32
 
32
33
  - 🔒 **Privacy by construction** — telemetry, remote error reporting, automatic
33
34
  update checks, remote trace upload, and upstream session sharing are all
34
- disabled by default.
35
+ disabled at the product-policy level.
35
36
  - ⚡ **Chutes-native inference** — live model discovery, `Auto (Chutes Router)`
36
37
  as the default, and automatic fallback when a model is temporarily
37
38
  unavailable.
@@ -111,7 +112,7 @@ chutes-build
111
112
  `Auto (Chutes Router)` is the first entry in the model picker and the default
112
113
  when no preference has been saved. Select a concrete model with `/model` or
113
114
  `chutes-build --model <model-id>`. Inspect the resolved catalog with
114
- `chutes-build models`.
115
+ `chutes-build models` or machine-readable `chutes-build models --json`.
115
116
 
116
117
  ## Features
117
118
 
@@ -120,6 +121,10 @@ when no preference has been saved. Select a concrete model with `/model` or
120
121
  - **Coding agent runtime:** repository inspection, edits, shell commands,
121
122
  planning, goals, MCP servers, skills, sessions, worktrees, and permission
122
123
  controls inherited from the mature upstream runtime.
124
+ - **Local session lifecycle:** list, search, resume, fork, export, trace, and
125
+ delete sessions without a remote registry. Machine-readable list/search
126
+ output is available with `--json`; destructive commands require confirmation
127
+ unless `--yes` is supplied.
123
128
  - **Advisor:** a read-only, on-demand reasoning agent that reviews plans,
124
129
  difficult decisions, blockers, and completion claims without taking over the
125
130
  executor loop. Reasons at maximum effort by default. `/advisor on|off`
@@ -165,14 +170,17 @@ when no preference has been saved. Select a concrete model with `/model` or
165
170
  treating directly relevant official pages as primary authority.
166
171
  - **Research and browser tools:** native web search (DuckDuckGo by default,
167
172
  optionally Brave) plus agentic Chrome/Edge control through a local DevTools
168
- connection and an isolated temporary browser profile.
173
+ connection and an isolated temporary browser profile. Browser actions accept
174
+ either CSS selectors or the numeric element indices shown by snapshots.
169
175
 
170
176
  ### Memory & voice
171
177
 
172
178
  - **Local memory:** Chutes Build maintains a secret-filtered `memories.md` file
173
179
  and can be launched with `--no-memory` when a stateless session is preferred.
174
180
  Recall is hybrid by default — full-text search combined with semantic vector
175
- search against a built-in Chutes-hosted embedding model.
181
+ search against a built-in Chutes-hosted embedding model. Semantic recall
182
+ sends the selected memory chunks to that Chutes embedding endpoint; use
183
+ `--no-memory` when this is not appropriate.
176
184
  - **Voice input:** hold-to-record dictation transcribes speech into the prompt
177
185
  box. Enabled by default; activation is always manual (mic icon, `/voice`, or
178
186
  Ctrl+Space) — Chutes Build never records without an explicit press.
@@ -182,11 +190,23 @@ when no preference has been saved. Select a concrete model with `/model` or
182
190
  ### Privacy by construction
183
191
 
184
192
  Telemetry, remote error reporting, automatic update checks, remote trace
185
- upload, and upstream session sharing are disabled. See
193
+ upload, upstream session sharing, and remote workspace exposure are disabled.
194
+ Updates are installed manually from npm or a release artifact. See
186
195
  [Privacy & security](#privacy--security) below for the full data boundary.
187
196
 
188
197
  ## Configuration
189
198
 
199
+ ### State root
200
+
201
+ User state defaults to `~/.chutes-build`. Set `CHUTES_BUILD_HOME` to relocate
202
+ the complete state tree, including configuration, credentials, sessions, logs,
203
+ trace exports, plugins, user roles/personas, and the managed bundled-agent
204
+ cache. Chutes Build does not combine roles or bundle data from the default home
205
+ with a custom state root.
206
+
207
+ Project-scoped `.chutes-build` directories remain inside their repositories and
208
+ continue to take precedence over user and bundled agent definitions.
209
+
190
210
  ### Model selection, reasoning, and routing
191
211
 
192
212
  Auto sends `model-router` requests to the Chutes router endpoint, allowing the
@@ -216,6 +236,12 @@ Fallback happens only for transient availability/capability responses and only
216
236
  before response streaming begins. Chutes Build does not redirect requests or
217
237
  credentials to a non-Chutes inference endpoint.
218
238
 
239
+ Ambient Chutes credentials are attached only to official Chutes/router
240
+ endpoints. Custom inference models must declare their own `api_key` or
241
+ `env_key`; a custom model-catalog endpoint uses the dedicated
242
+ `CHUTES_MODELS_API_KEY`. Neither receives `CHUTES_API_KEY` or a cached Chutes
243
+ session token implicitly.
244
+
219
245
  The inference client shares pooled HTTP connections, enables TCP no-delay, and
220
246
  forwards parsed SSE events without an application-level streaming buffer. Cold
221
247
  starts and model-side generation can still dominate latency. Auto is the
@@ -235,6 +261,25 @@ run `/usage` for every active window, percentage, and reset time. If aggregate
235
261
  quota usage is unavailable, the client falls back concurrently to the
236
262
  documented per-chute quota endpoints.
237
263
 
264
+ ### OAuth login (Sign in with Chutes)
265
+
266
+ Pressing `l` at the welcome screen (or `/login`) runs a standard OAuth 2.0 +
267
+ PKCE flow against Chutes' own identity provider. The built-in app is a public
268
+ client and does not bundle or require a client secret. Custom confidential
269
+ clients can be configured under
270
+ [Chutes' developer settings](https://chutes.ai/app/api):
271
+
272
+ ```powershell
273
+ $env:CHUTES_BUILD_OAUTH2_CLIENT_ID = "cid_..."
274
+ $env:CHUTES_BUILD_OAUTH2_CLIENT_SECRET = "csc_..." # only if your app has one
275
+ chutes-build
276
+ ```
277
+
278
+ Both variables are read from the environment and are never written to
279
+ `config.toml` or any other file on disk. The custom secret is included in both
280
+ the initial token exchange and refresh requests. `k` / `/apikey` (pasting a
281
+ Chutes API key directly) needs no app registration.
282
+
238
283
  ### Optional web and browser configuration
239
284
 
240
285
  Web search uses DuckDuckGo without a dedicated key. For Brave Search:
@@ -267,14 +312,24 @@ limited to 512 MiB by default (`CHUTES_MAX_MEDIA_BYTES`, hard ceiling 2 GiB),
267
312
  while workspace inputs are limited to 64 MiB by default
268
313
  (`CHUTES_MAX_INPUT_ASSET_BYTES`, hard ceiling 512 MiB).
269
314
 
315
+ ## CLI reference
316
+
317
+ The complete command and option reference is in
318
+ [docs/cli-reference.md](docs/cli-reference.md). Interactive slash commands are
319
+ documented in [docs/slash-commands.md](docs/slash-commands.md). Installed
320
+ binaries remain authoritative for the exact version: use
321
+ `chutes-build --help` and `chutes-build <command> --help`.
322
+
270
323
  ## Privacy & security
271
324
 
272
325
  ### Local data
273
326
 
274
327
  User-level state defaults to `~/.chutes-build` or the directory set in
275
328
  `CHUTES_BUILD_HOME`. Project memory is stored in `memories.md`. Configuration,
276
- sessions, logs, exports, and credentials remain local unless a tool action
277
- explicitly calls an external service.
329
+ sessions, logs, exports, credentials, plugins, user roles/personas, and bundled
330
+ agent definitions remain local. Prompts, selected repository content, memory
331
+ embeddings, voice recordings, OCR/media inputs, and browser traffic leave the
332
+ machine only when their corresponding hosted feature is invoked.
278
333
 
279
334
  See [PRIVACY.md](PRIVACY.md) for the exact network and data boundaries.
280
335
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chutes-build",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Privacy-first coding agent optimized for the Chutes ecosystem",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Michael Gasperini (Mikesoft)",
@@ -34,12 +34,12 @@
34
34
  "verify:release": "node npm/scripts/verify-release.mjs"
35
35
  },
36
36
  "optionalDependencies": {
37
- "chutes-build-darwin-arm64": "0.3.0",
38
- "chutes-build-darwin-x64": "0.3.0",
39
- "chutes-build-linux-arm64-gnu": "0.3.0",
40
- "chutes-build-linux-x64-gnu": "0.3.0",
41
- "chutes-build-win32-arm64": "0.3.0",
42
- "chutes-build-win32-x64": "0.3.0"
37
+ "chutes-build-darwin-arm64": "0.4.0",
38
+ "chutes-build-darwin-x64": "0.4.0",
39
+ "chutes-build-linux-arm64-gnu": "0.4.0",
40
+ "chutes-build-linux-x64-gnu": "0.4.0",
41
+ "chutes-build-win32-arm64": "0.4.0",
42
+ "chutes-build-win32-x64": "0.4.0"
43
43
  },
44
44
  "keywords": [
45
45
  "ai",