@meistrari/remy-cli 1.22.0-rc.6 → 1.22.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/README.md +39 -2
  2. package/dist/remy.js +3010 -552
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -54,9 +54,13 @@ The dashboard is the starting point for all interactive work. It refreshes the v
54
54
 
55
55
  Press `n` in the dashboard. The new-session flow asks what you want done, selects a GitHub installation when needed, suggests repositories based on your request, and lets you review those suggestions. Remy analyzes the request for existing work: a Remy session ID or number, a PR URL or number (`PR 267`, `#267`, or `owner/repo#267`), or an exact or approximate branch name. It verifies matches against the selected repositories and offers up to five branches per repository. Branch choices are grouped by repository, with PR details below each branch and the selected branch highlighted. In the branch step, use arrows to move, Space to select, and Enter to select the current option and review your choices. Each repository can continue one branch or start a new session branch. A lookup failure stays on a retry screen; press `r` to retry, `n` to explicitly choose new branches, or Esc to edit the request. Before creating the session, choose the agent model and reasoning effort. The wizard starts with `claude-opus-5-5` and `medium` reasoning by default. Remy then opens the session and streams its activity. Remy loads the session number when opening the session and refreshes details when its generated-title event arrives or the stream reconnects. The header and composer update without reopening the session or losing your draft. If a title refresh fails, Remy keeps the last details and continues loading or streaming the conversation.
56
56
 
57
+ On the final review, press `c` to choose MCP servers. Arrows move, Space toggles optional servers, `s` searches, `r` refreshes, and Enter returns to review. Escape clears an active search before returning to review. Servers always included for CLI sessions are locked; unavailable optional connections cannot be added. Previously selected servers that disappear remain visible until you remove them. Catalog failures block creation: open the picker and press `r` to retry without losing your prompt.
58
+
57
59
  Use `Tab` while writing the request to complete a local file or directory path. Path suggestions use the same highlighted list as command autocomplete, with File/Directory labels and a menu sized to the terminal; arrows move, Enter accepts, Tab cycles, and Esc dismisses. Remy attaches selected paths when you confirm the request. You can also paste an absolute path directly; quote paths containing spaces (for example, `"/Users/me/Desktop/Screen Shot.png"`) or use shell-style backslash escapes. Autocomplete selection is not required. Each file may be at most 20 MiB. A directory may contain at most 20 MiB across its regular files before compression; Remy uploads it as a temporary `<directory>.tar.gz` archive with the selected directory preserved as its root, so the remote agent can extract and use its files. Remy rejects oversized attachments with guidance to choose a smaller file or directory, and rejects directory attachments that contain symbolic links or other non-regular entries. On macOS, `Ctrl+V` saves a clipboard image as a temporary PNG and adds its path to the request; Remy attaches it on confirmation. Remy uploads attachments before creating the session and shows their filenames beneath your message.
58
60
 
59
- In a session, `Esc` dismisses open command/path suggestions or help before it can stop an active turn. Long suggestion labels may be shortened on screen; accepting one inserts the complete value.
61
+ In a session, `Esc` dismisses open command/path suggestions or help before it can stop an active turn. Long suggestion labels may be shortened on screen; accepting one inserts the complete value. `/changes` opens read-only workspace Changes; `/workspace` opens its repository Files tree. `/files` or `Ctrl+F` remains the published-file and attachment picker. In the workspace browser, arrows or `j`/`k` navigate, Enter opens a loaded entry (deleted Changes rows open their old-side diff), `s` searches loaded entries, and `r` refreshes. In a file or diff, `g` goes to a line, Space anchors a range, `a` stages captured lines for the next message, `o`/`n` chooses the old/new side, `e` expands verified full context, `w` changes diff scope, `v` switches file/diff, and `d` downloads current regular-file bytes to `~/Downloads`; this is a fresh read and may differ from the displayed capture, not a snapshot export. Esc unwinds search, selection, and navigation before returning with the composer draft intact; returning from a viewer restores the originating list row when it remains available. Up to five contexts can be staged; each range is limited to 200 lines and 12,000 characters. Stale or unavailable captures cannot be staged. Valid human-message workspace trailers display compact repository/path/line references by default; `Ctrl+O` expands the original text. `/context` reviews or removes staged references before sending. The full captured text remains in the canonical message, and malformed trailers display as ordinary text.
62
+
63
+ Opening the workspace browser while a message is being submitted does not discard that attempt. When you return, a failed submission remains available with `Ctrl+R`; retry preserves its original text, captured context, attachments, settings, and request identity. This recovery lasts for the current attached session, not across CLI restarts.
60
64
 
61
65
  ### Resume or follow up
62
66
 
@@ -104,6 +108,10 @@ Drag to select visible text in any Remy view; Remy copies it to the local clipbo
104
108
  | `/new` | Start another new-session flow. |
105
109
  | `/logout` | Sign out of Remy after confirmation. |
106
110
  | `/files` / `Ctrl+F` | Browse and download session artifacts and everyone’s attachments. |
111
+ | `/changes` / `/workspace` | Browse read-only workspace changes or repository files and diffs. |
112
+ | `/context` | Review or remove staged workspace context before sending. |
113
+ | `/mcps` | Inspect session MCP attachments and available offerings; add or toggle optional attachments on open sessions. |
114
+ | `/open` | Open the session in Web using the server-provided URL. |
107
115
  | `/links` / `Ctrl+L` | Browse, open, or copy conversation links. |
108
116
  | `/help` | Browse the same command picker shown by `/`; arrows select, Enter/Tab inserts, then submit to run. |
109
117
  | `/exit` | Leave Remy. |
@@ -132,6 +140,10 @@ remy new --repository owner/repository "Add a health check endpoint"
132
140
 
133
141
  Repeat `--repository` to select more repositories from the same GitHub installation. If you do not select a repository, supply `--installation <github-installation-id>`. Repeat `--attach <path>` to upload files or directories; the 20 MiB per-attachment limit is measured directly for a file and across all regular files before compressing a directory. Remy sends each accepted directory as a gzip-compressed tar archive. Direct creation uses `medium` reasoning unless `--reasoning-effort` overrides it; omit `--model` to use the server's Claude `claude-opus-5-5` default. `--model` accepts a Codex model (`gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-5.5`) or a Claude model (`claude-opus-5-5`, `claude-sonnet-5`, `claude-fable-5-1`); the model chooses the session's harness, which stays fixed for the session. For example, `remy new --model claude-opus-5-5 --repository owner/repository "Add a health check endpoint"` starts a Claude session. In the interactive wizard, press `m` on the confirm step to cycle through every harness's models, shown as `Codex · GPT 6.0 Astra` or `Claude · Opus 5.5`. `remy new` creates the session from the prompt and flags, then opens it when the terminal is interactive.
134
142
 
143
+ Repeat `--mcp <offering-id>` to attach optional MCP servers (for example, `remy new --installation <id> --mcp <offering-id> --no-tui "Investigate the issue"`). These are offering IDs, not account or session-attachment IDs. Omitting the flag still includes the organization's CLI defaults; the server validates the selection.
144
+
145
+ If a creation response is lost, Remy retransmits once using the same request, uploaded file IDs, and idempotency key. In the interactive wizard, retrying an unchanged draft continues that attempt. Editing an uncertain draft starts a new attempt and warns that the earlier session may already exist. Retry identity is process-local: after exiting or a second uncertain response, check your sessions before running a new command.
146
+
135
147
  The branch-suggestion flow belongs to the interactive new-session wizard (`remy`, then `n`). Direct `remy new` creation does not analyze continuation references.
136
148
 
137
149
  ### Open a known session
@@ -178,6 +190,24 @@ For a newly created session, Remy writes a `created` record, event-name records
178
190
  {"type":"terminal","session_id":"ses_123","state":{"aggregate_status":"open","connection_status":"connected","active_message_id":"smg_123","outcome":"completed"}}
179
191
  ```
180
192
 
193
+ ### Inspect workspace and session MCPs
194
+
195
+ ```bash
196
+ remy session workspace changes <session-id> --json
197
+ remy session workspace entries <session-id> --repository <repository-id> [--path <directory>]
198
+ remy session workspace file <session-id> --repository <repository-id> --path <file> --json
199
+ remy session workspace diff <session-id> --repository <repository-id> --path <file> --scope worktree
200
+ remy session workspace download <session-id> --repository <repository-id> --path <file>
201
+ remy session mcps list <session-id> --json
202
+ remy session mcps add <session-id> <offering-id>
203
+ remy session mcps enable|disable <session-id> <attachment-id>
204
+ remy session open <session-id>
205
+ ```
206
+
207
+ Workspace `changes`, `entries`, `file`, and `diff` emit one JSON envelope with `resource`, `session_id`, repository/path (when applicable), diff `scope` (when applicable), and the unmodified typed API `result`; human-readable output includes availability and capture revision. `--scope session|worktree` applies only to diff, with `session` as the default. `download` does not accept `--json`: it saves an available regular file with a collision-safe name to `~/Downloads` and prints the saved path. Workspace reads use the server's bounded live or durable snapshot: `preparing`, unavailable, stale, truncated, and error responses are not silently treated as complete data. They do not resume a sandbox. The server limits directory entries and file/diff content; narrowed paths or another capture may be needed, not an invented next page.
208
+
209
+ `mcps list --json` prints `{ "data": [...] }`; each attachment reports its own enabled state, current offering policy and availability, and explicit company selection. `add` takes an offering ID; enable/disable take an attachment ID. Writes refresh authoritative state, and an uncertain outcome asks you to inspect the list rather than sending an automatic second mutation. In `/mcps`, a failed offering-catalog read is reported separately: successfully loaded session attachments remain inspectable and toggleable, while additions wait for a successful catalog refresh. Always-included attachments cannot be disabled while their creating-source policy remains on; ended sessions are read-only. `remy session open` opens a server-provided session Web URL, or prints it for manual use if the browser cannot open. Global MCP directory, administration, and account/OAuth connection remain Web-only; `/open` is a session handoff, not a global MCP or OAuth navigation command.
210
+
181
211
  ### Sign in to a different deployment
182
212
 
183
213
  You do not need `remy login` for a normal first run: bare `remy` handles sign-in. Use it to select a deployment profile or change connection settings:
@@ -212,8 +242,15 @@ remy whoami
212
242
  remy update
213
243
  remy --version | -v
214
244
  remy dashboard
215
- remy new [--repository <owner/name> ... --installation <id> --model <name> --reasoning-effort <low|medium|high|xhigh> --attach <path> ... --no-tui --json] <prompt>
245
+ remy new [--repository <owner/name> ... --installation <id> --model <name> --reasoning-effort <low|medium|high|xhigh> --attach <path> ... --mcp <offering-id> ... --no-tui --json] <prompt>
216
246
  remy --session <session-id> [--model <name> --reasoning-effort <low|medium|high|xhigh> --no-tui --json] [prompt]
247
+ remy session open <session-id>
248
+ remy session mcps list <session-id> [--json] | add <session-id> <offering-id> | enable|disable <session-id> <attachment-id>
249
+ remy session workspace changes <session-id> [--json]
250
+ remy session workspace entries <session-id> --repository <repository-id> [--path <directory>] [--json]
251
+ remy session workspace file <session-id> --repository <repository-id> --path <file> [--json]
252
+ remy session workspace diff <session-id> --repository <repository-id> --path <file> [--scope session|worktree] [--json]
253
+ remy session workspace download <session-id> --repository <repository-id> --path <file>
217
254
  ```
218
255
 
219
256
  Run `remy <command> --help` for flags and command-specific usage. `remy whoami` prints the saved signed-in identity and organization.