vibecoding-devtools 1.0.1

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -0
  3. package/hooks/full-suite.mjs +156 -0
  4. package/hooks/lib/io.mjs +135 -0
  5. package/hooks/maestri-protocol.mjs +48 -0
  6. package/hooks/secret-scan.mjs +90 -0
  7. package/installer/cli.mjs +263 -0
  8. package/installer/clis.mjs +46 -0
  9. package/installer/convert.mjs +91 -0
  10. package/installer/detect.mjs +389 -0
  11. package/installer/execute.mjs +386 -0
  12. package/installer/hooks.mjs +67 -0
  13. package/installer/json-merge.mjs +211 -0
  14. package/installer/panel.mjs +99 -0
  15. package/installer/plan.mjs +255 -0
  16. package/installer/state.mjs +105 -0
  17. package/installer/third-party.json +16 -0
  18. package/installer/third-party.mjs +204 -0
  19. package/npm-shrinkwrap.json +80 -0
  20. package/package.json +43 -0
  21. package/rules/base.md +25 -0
  22. package/rules/context-on-demand.md +25 -0
  23. package/rules/maestri-messaging.md +10 -0
  24. package/rules/maestri-usage.md +12 -0
  25. package/rules/model-tiers.md +17 -0
  26. package/rules/risk-process.md +69 -0
  27. package/rules/testing.md +53 -0
  28. package/skills/maestri-agent-cli/SKILL.md +150 -0
  29. package/skills/maestri-agent-cli/references/_template.md +62 -0
  30. package/skills/maestri-agent-cli/references/antigravity.md +206 -0
  31. package/skills/maestri-agent-cli/references/claude-code.md +203 -0
  32. package/skills/maestri-agent-cli/references/codex.md +190 -0
  33. package/skills/maestri-budget/SKILL.md +118 -0
  34. package/skills/maestri-protocol/SKILL.md +72 -0
  35. package/skills/risk-triage/SKILL.md +44 -0
  36. package/skills/security-surfaces/SKILL.md +31 -0
  37. package/skills/security-surfaces/surfaces/accounts-and-data.md +41 -0
  38. package/skills/security-surfaces/surfaces/inputs-and-services.md +47 -0
  39. package/skills/security-surfaces/surfaces/money.md +57 -0
  40. package/skills/security-surfaces/surfaces/secrets-and-infra.md +43 -0
  41. package/templates/AGENTS.md +68 -0
  42. package/templates/CLAUDE.md +1 -0
  43. package/templates/coderabbit.yaml +127 -0
@@ -0,0 +1,150 @@
1
+ ---
2
+ name: maestri-agent-cli
3
+ description: Drive another agent's terminal on the Maestri canvas when it may run a CLI or account different from yours (Antigravity, Claude Code, Codex, and others). Load it when you recruit an agent, before you operate an agent's TUI with `maestri ask --raw` (answering a permission prompt, switching model or effort, opening its settings, checking its quota), and when an agent is stuck, waiting, out of quota, logged out or erroring.
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Driving Other Agents' CLIs
8
+
9
+ You're running inside Maestri, a spatial development workspace that connects AI agents, terminals, notes, and browser
10
+ portals on a visual canvas. This skill extends the base `maestri` skill.
11
+
12
+ The agents on the canvas may run different CLIs, on different accounts. Each CLI has its own screens, keys, slash
13
+ commands, permission prompts and quota rules. What works in your own CLI can do something else in theirs: a key that
14
+ dismisses a dialog in one can exit the agent in another. Never assume the other agent works like you.
15
+
16
+ ## 1. Know each agent's CLI and account
17
+
18
+ `maestri list` may show only the agent's name, without its CLI or account. Keep them in a file of your own, `ledger.md`,
19
+ under `## Agents`, one row per agent, and read it before you drive any agent. The `maestri-budget` skill adds the quota
20
+ and model tables to the same file.
21
+
22
+ ```markdown
23
+ ## Agents
24
+
25
+ | Agent | CLI | Account | Model |
26
+ |---|---|---|---|
27
+ | Hawk | Codex | Work | fixed |
28
+ | Lynx | Antigravity | Default | managed |
29
+ ```
30
+
31
+ - **Account** is the account name from `maestri preset list` when you know it (you recruited the agent); otherwise the
32
+ login or plan its screen shows. Agents on the same account share its quota.
33
+ - **Model** is `fixed` unless the user tells you an Antigravity agent is a multi-model generalist under your control:
34
+ then it is `managed` (see the `maestri-budget` skill). Never change the model, effort or settings of a `fixed` agent
35
+ unless the user asks for that change.
36
+
37
+ - **Where:** your session directory (the scratch or session folder your CLI gives you). If your CLI has none, use
38
+ `maestri-<your name>/ledger.md` in the system temp folder. It is your working record: never put it on the canvas or in
39
+ the project.
40
+ - **When you recruit**, write the row right away: the CLI comes from the preset and the account from `--account` (or the
41
+ preset's own account, as `maestri preset list` prints it).
42
+ - **For an agent you did not recruit**, identify it once from its screen (table below) and write the row. Where each CLI
43
+ shows the account is in its reference.
44
+ - **Update the row** whenever you run `maestri recruit --replace` with another preset, command or account: that is how
45
+ an agent's CLI or account changes.
46
+ - Use account names as `maestri preset list` prints them; never write an email, token or key in the file. Do not record
47
+ the model or effort: they change with restarts and pickers.
48
+ - If the screen ever disagrees with the file, trust the screen and fix the file. In a new session the file may be gone:
49
+ rebuild it the same way.
50
+
51
+ To identify an agent from its screen, read it with `maestri check "Agent Name"` and match it:
52
+
53
+ | CLI | Signature on screen | Reference |
54
+ |---|---|---|
55
+ | Antigravity | Banner `Antigravity CLI <version>`; input `>`; footer `<model> · <effort>`; command `agy` | [references/antigravity.md](references/antigravity.md) |
56
+ | Claude Code | Banner `Claude Code v<version>`; input `❯`; footer with the mode (`auto mode on`, `manual mode on`...); command `claude` | [references/claude-code.md](references/claude-code.md) |
57
+ | Codex | Banner `>_ OpenAI Codex (v<version>)`; input `›`; footer `<model> <effort> · <folder>`; command `codex` | [references/codex.md](references/codex.md) |
58
+
59
+ Open the matching reference before pressing anything. If no signature matches, use `/help` or `?` on the agent and read
60
+ the result before acting; to add a CLI, copy [references/_template.md](references/_template.md).
61
+
62
+ CLIs update often. When a screen, menu or prompt does not match the reference, trust the screen: do not guess keys,
63
+ back out with Esc, and tell the user the reference is out of date.
64
+
65
+ Before delegating, check **Built-in capabilities** in the reference: which tools the agent has (web search, images,
66
+ browser, subagents) and which commands help with the task (`/plan`, `/review`, `/btw`, `/goal`). Delegate a task to an
67
+ agent that has what it needs.
68
+
69
+ ## Launch agents autonomous
70
+
71
+ Routine permission prompts stall delegated work. For every agent that needs autonomy, the Maestro follows this conduct:
72
+
73
+ 1. **Recruit:** use the CLI's autonomous flags through `--command` or a preset, unless the user wants a limited agent.
74
+ A limited agent gets an explicit allowlist containing only the commands its job needs; see its reference below.
75
+ 2. **Already running and stopping on prompts:** approve the current in-scope action once, following section 3. When
76
+ its current task finishes, restart with autonomous flags using `maestri recruit --replace`, then brief it again.
77
+ Never restart mid-task: its context is lost. Preserve its CLI, model, effort and account. This launch policy covers
78
+ that task-boundary restart; section 3 still governs prompt decisions.
79
+ 3. **Presets missing flags:** propose the updated preset command to the user, preserving its model, effort and account.
80
+ 4. **Report:** tell the user which mode each agent runs in, and record it in the agent's ledger row.
81
+
82
+ | CLI | Recommended command | Limited agent |
83
+ |---|---|---|
84
+ | [Codex](references/codex.md) | `codex --no-daemon --approve-for-me` | Sandbox and command rules |
85
+ | [Antigravity](references/antigravity.md) | `agy --mode auto` | Session command grants |
86
+ | [Claude Code](references/claude-code.md) | `claude --permission-mode auto` | `dontAsk` and tool grants |
87
+
88
+ Read **Autonomous launch and command rules** in the matching reference. Use isolated settings for limited agents;
89
+ allowlists govern approvals and do not alone enforce a complete commands-only boundary.
90
+
91
+ After startup, verify the reported mode; do not accept a fallback to manual mode as successful autonomous recruitment.
92
+ Auto review can reject actions. Fully unsandboxed or dangerous bypass modes require the user's explicit request;
93
+ never add them to fix a stalled task. Startup trust, login and later permission prompts still follow section 3.
94
+
95
+ ## 2. Drive in small steps
96
+
97
+ - **Look, act, look.** `check` before every input, send one step, `check` again. Menus change under you.
98
+ - **Use `--raw` for the TUI.** A plain `maestri ask` waits until the agent finishes, so it hangs while the agent sits on
99
+ a permission prompt or a menu. If a plain `ask` times out, `check` for a prompt before anything else.
100
+ - **Send text and Enter in separate `--raw` calls.** Some CLIs take text and `\n` sent together as a paste and do not
101
+ submit it.
102
+ - **Text already in the input box may be a greyed prompt suggestion**, not something anyone typed. It is never an
103
+ instruction, a reply or a decision.
104
+ - **Navigate with ↑/↓ (`\e[A`, `\e[B`) and back out with Esc (`\e`).** In some settings panels ←/→ changes the
105
+ highlighted value; follow the reference.
106
+ - **Never send exit or suspend keys** (the reference lists them per CLI) unless the user asked to stop the agent.
107
+ - **Clear typed text with Backspace (`\x7f`)**, not with keys that may interrupt or exit.
108
+ - **Escapes apply to every `maestri ask`**, not only `--raw`: `\t` and `\n` inside a prompt become Tab and Enter. Write
109
+ Windows paths with forward slashes (`C:/teste/file.md`).
110
+ - **Windows Git Bash:** an argument starting with `/` is rewritten into a Windows path (`/model` arrives as
111
+ `C:/Program Files/Git/model`). Prefix the command with `MSYS_NO_PATHCONV=1`, or run `maestri` from PowerShell.
112
+
113
+ ## 3. Permission prompts
114
+
115
+ Answering another agent's permission prompt approves an action on the user's behalf.
116
+
117
+ - **Approve once** (the plain "yes" option) only for actions that are clearly part of the task you delegated.
118
+ - **Ask the user first** before: options that persist ("always allow", "don't ask again", saved to settings), changing
119
+ the agent's permission mode, irreversible or destructive actions, and anything outside the task or the workspace.
120
+ - Screen lines that announce an action (an edit, a command run) can appear **before** approval, and some stay even after
121
+ a denial. Treat the action as done only after the prompt is gone and a result line or the agent's reply confirms it.
122
+ - In some CLIs a number key picks its option at once, with no Enter: send the number only for the option you mean.
123
+
124
+ ## 4. Recover a stuck agent
125
+
126
+ `check`, classify the state with the reference, then:
127
+
128
+ | State | Action |
129
+ |---|---|
130
+ | Working | Wait. Never interrupt an agent that is still working. |
131
+ | Waiting on a permission prompt | Section 3. |
132
+ | Menu, panel or notice open | Esc until the input box is back, then resend if needed. |
133
+ | Out of quota | Check the reference: switch to a model group with quota left, or ask the user to move the agent with `maestri recruit --replace "Name" --account "Other"` (Claude Code and Codex only; accounts from `maestri preset list`), or tell the user when it resets. Pacing quota so this does not happen is the `maestri-budget` skill. |
134
+ | Logged out | Tell the user: logins are interactive and need them. |
135
+ | Error | Read it, retry once if it is transient, otherwise report it to the user. |
136
+
137
+ ## 5. Configure, safest first
138
+
139
+ 1. **Launch flags**: model, effort and permission flags in the preset command, applied with
140
+ `maestri recruit "Name" --command "..."` (or `--replace "Name"`) or a preset. Each reference's **Model and effort**
141
+ says where the CLI lists its exact model ids and how to pass them: never guess an id.
142
+ 2. **The CLI's settings file**, when the reference names it.
143
+ 3. **The TUI menu** (`/model`, `/config`...) through `--raw`, step by step.
144
+
145
+ Change only what the user asked for, and tell them what you changed: some changes reset other values (switching model
146
+ can reset effort), and some pickers save the choice as the default for every new session unless you pick the
147
+ session-only option. The reference says which.
148
+
149
+ When Maestri restarts an agent, it relaunches the preset command: a change made in the TUI is lost if a flag in that
150
+ command sets the same value. After a restart, `check` the footer and redo the change, or put it in the command.
@@ -0,0 +1,62 @@
1
+ # <CLI name>
2
+
3
+ Verified live on <CLI> <version>, <OS> (<date>). Or: **Not yet verified live.**
4
+
5
+ ## Identify
6
+
7
+ - Launch command:
8
+ - Banner:
9
+ - Footer:
10
+
11
+ ## States
12
+
13
+ | State | On screen |
14
+ |---|---|
15
+ | Idle | |
16
+ | Working | |
17
+ | Permission prompt | |
18
+ | Menu or panel | |
19
+ | Done | |
20
+
21
+ ## Permission prompts
22
+
23
+ Paste each prompt as it appears, then note which option approves once and which ones persist.
24
+
25
+ ## Model and effort
26
+
27
+ ## Settings
28
+
29
+ How to open them, how to navigate without changing values, and where the settings file lives.
30
+
31
+ ## Quota
32
+
33
+ How to see it, what the exhausted screen says, and how to recover.
34
+
35
+ ## Keys
36
+
37
+ | Key | Raw | Action |
38
+ |---|---|---|
39
+ | Enter | `\n` | |
40
+ | Esc | `\e` | |
41
+ | Ctrl+C | `\x03` | |
42
+ | Ctrl+D | `\x04` | |
43
+ | Shift+Tab | `\e[Z` | |
44
+
45
+ Mark keys that exit, suspend, change modes or approve actions.
46
+
47
+ ## Built-in capabilities
48
+
49
+ Ask the agent to list its tools by exact name without running any, and read `/skills`. Keep only what ships with the
50
+ CLI: leave out Maestri's skills and anything from plugins the user installed.
51
+
52
+ | Need | How |
53
+ |---|---|
54
+ | Web search | |
55
+ | Read images | |
56
+ | Subagents | |
57
+ | Plan before editing | |
58
+ | Side question | |
59
+
60
+ ## Slash commands for the Maestro
61
+
62
+ ## Not yet observed
@@ -0,0 +1,206 @@
1
+ # Antigravity CLI
2
+
3
+ Verified live on Antigravity CLI 1.4.8, Windows, Google AI Pro account (2026-10-27); quota pools and `/context` on 1.4.9
4
+ (2026-11-04).
5
+
6
+ ## Identify
7
+
8
+ - Launch command: `agy`, e.g. `agy --model gemini-4-argon-high --effort high`.
9
+ - Banner: `Antigravity CLI <version>`, account and plan, model and effort, workspace folder.
10
+ - Footer: `<model> · <effort>`, e.g. `Gemini 3.8 Flash · medium`.
11
+ - `?` → tab **general**: version, account, workspace, project config
12
+ (`~/.gemini/config/projects/default-cli-project.json`), log (`~/.gemini/antigravity-cli/log/`), conversation id.
13
+
14
+ ## States
15
+
16
+ | State | On screen |
17
+ |---|---|
18
+ | Idle | Empty `>` input; footer `? for shortcuts` |
19
+ | Notice | Block with `┃` lines and `esc to dismiss` above the input |
20
+ | Menu or panel | Footer `Keyboard: ...` or `esc to cancel` |
21
+ | Permission prompt | `Allow creation of this file?` or `Run this command?` with numbered options |
22
+ | Done | Agent's reply, then an empty `>` input |
23
+
24
+ `● Edited 1 file (...)` and `● Ran (...)` show up while the permission prompt is still open: they do not mean the action
25
+ happened.
26
+
27
+ ## Sending a prompt
28
+
29
+ Text and `\n` in a single `--raw` call submitted the prompt. Sending the Enter in a separate call, as the skill
30
+ recommends, is the safe default across CLIs.
31
+
32
+ ## Autonomous launch and command rules
33
+
34
+ Verified on Antigravity CLI 1.5.2, Windows (2026-11-06): installed help and isolated startup argument checks.
35
+
36
+ ```bash
37
+ agy --mode auto
38
+ ```
39
+
40
+ The installed help accepts `auto`, `accept-edits` and `plan`. Auto mode handles workspace edits and safe commands;
41
+ risky or irreversible actions can still prompt. Check the active mode after launch. The fake-home test warned that the
42
+ terminal sandbox was unavailable and fell back to default mode, then required login. Do not treat that as an autonomous
43
+ session; resolve sandbox availability or prepare the limited-agent grants below. No authenticated actions were tested.
44
+
45
+ For a limited agent, use session settings rather than general auto approval:
46
+
47
+ ```bash
48
+ agy --mode accept-edits --settings /path/to/limited.json
49
+ ```
50
+
51
+ ```json
52
+ {
53
+ "permissions": {
54
+ "allow": ["command(npm --version)"],
55
+ "deny": ["command(git push)"],
56
+ "ask": []
57
+ }
58
+ }
59
+ ```
60
+
61
+ `--settings` accepts a JSON object or file for this session only, never saved. The example was accepted at startup;
62
+ grant matching was not exercised past login. Persistent CLI grants use `permissions.allow`, `permissions.deny` and
63
+ `permissions.ask` in `~/.gemini/antigravity-cli/settings.json`. Prompt option 3 saves its command grant there;
64
+ option 2 lasts for the conversation. Do not edit `~/.gemini/config/` expecting it to change this CLI allowlist.
65
+
66
+ Grants use `command(prefix)` or `command(regex:pattern)`. On Windows, a command that cannot be split reliably needs
67
+ an exact match or regex. Deny overrides ask, then allow; `ask: ["command(*)"]` defeats narrower allow grants.
68
+ Unlisted commands in this limited mode can prompt: an empty ask list is not a deny-by-default policy.
69
+ Workspace edits remain allowed; use sandbox controls if the agent needs a stricter boundary.
70
+ See the [CLI permission reference](https://antigravity.google/docs/permissions#cli-fine-grained-permissions).
71
+
72
+ `--dangerously-skip-permissions` auto-approves every tool request. Use only at the user's explicit request.
73
+
74
+ ## Permission prompts
75
+
76
+ File edit or creation:
77
+
78
+ ```text
79
+ Allow creation of this file?
80
+ > 1. Yes, allow creation
81
+ 2. No, deny creation
82
+ ↑/↓ Navigate · tab Amend · f full diff
83
+ esc to cancel
84
+ ```
85
+
86
+ Command:
87
+
88
+ ```text
89
+ Run this command?
90
+ > 1. Yes, run command
91
+ 2. Yes, and always allow in this conversation for commands that start with '<cmd>'
92
+ 3. Yes, and always allow for commands that start with '<cmd>' (Persist to settings.json)
93
+ 4. No, cancel
94
+ ↑/↓ Navigate · tab Amend · ctrl+g edit/expand command
95
+ esc to cancel
96
+ ```
97
+
98
+ - Option 1 is preselected: Enter (`\n`) approves once.
99
+ - Option 2 persists for the conversation, option 3 persists to `settings.json`: ask the user first.
100
+ - Which actions prompt is set by **Agent Mode** and **Tool Permission** in `/config`.
101
+
102
+ ## Model and effort
103
+
104
+ - **Exact ids:** `agy models` prints one `<id>` and name per line for the account, e.g. `gemini-3.8-flash-low`,
105
+ `gemini-4-argon-high`, `claude-sonnet-5-5-medium`; the effort is part of the id. Launch with
106
+ `agy --model <id> --effort <low|medium|high>` (e.g. in `maestri recruit --command`).
107
+
108
+ 1. `/model`, Enter → **Switch Model** picker.
109
+ 2. ↑/↓ picks the model, ←/→ sets effort (low, medium, high), Enter confirms, Esc goes back.
110
+ 3. Confirmation in the history: `⎿ Model set to <model> (<Effort>)`.
111
+
112
+ Switching model resets effort to medium. `/effort` sets effort alone. Both can be set at launch:
113
+ `agy --model <id> --effort <level>`.
114
+
115
+ A `/model` change does not survive a restart when the preset command pins the model: after Maestri relaunched it with
116
+ `--model gemini-4-argon-high --effort high`, the agent was back on Argon high.
117
+
118
+ ## Settings (`/config`)
119
+
120
+ - `/config`, Enter. Typing filters the list. Esc clears the search, and exits when the search is empty.
121
+ - **←/→ changes the highlighted value.** Navigate with ↑/↓ only.
122
+
123
+ | Setting | Values / meaning |
124
+ |---|---|
125
+ | Agent Mode | `default`; `accept-edits` (auto-approves edits, prompts for commands); `auto` (auto-approves edits and safe commands, prompts on irreversible actions); `plan` (researches and plans without changes) |
126
+ | Tool Permission | Whether terminal commands need approval (`request-review` by default) |
127
+ | Artifact Review | `always proceeds`, `agent decides`, `asks for review` |
128
+ | Non-Workspace Access | Access to files outside the workspace folders |
129
+ | Sandbox Mode | Terminal sandbox restrictions |
130
+ | Queued Messages | When follow-up messages are sent |
131
+ | Use AI Credits | Use AI credits once the plan's quota runs out |
132
+ | Verbosity | Detail shown for tool calls, commands and thoughts |
133
+
134
+ Also: Animation Speed, Color Scheme, Conversation Picker Grouping, Copy on Select, Editor, Editor Mode, Enable
135
+ Telemetry, Notifications, Rendering Mode, Seasonal Themes, Show Active Tasks, Show Feedback Survey, Show Tips.
136
+
137
+ ## Quota
138
+
139
+ - `/usage` (alias `quota`): quota per pool, shown as **percent remaining** (not used), with `Refreshes in <h>h <m>m`
140
+ once part of it is spent. The panel scrolls (PgDn `\e[6~`); Esc closes it. Pools on a Pro plan (1.4.9):
141
+ - **Gemini** group: Gemini Flash, Gemini Pro. Weekly and five-hour limits. Flash has the roomiest quota but makes
142
+ frequent mistakes in development work: verify everything it delivers (`maestri-budget`).
143
+ - **Claude and GPT** group: Claude Opus, Claude Sonnet, GPT-OSS. Weekly and five-hour limits.
144
+ - **Gemini 4 Argon**: its own weekly limit, separate from the Gemini group, with no five-hour window. It is small:
145
+ a few large tasks a week.
146
+ - Pools are separate: when one runs out, `/model` to a model of another pool keeps the agent working on the same
147
+ account.
148
+ - Quota is spent in proportion to the cost of the tokens: shorter tasks and cheaper models last longer.
149
+ - `/context`: tokens used of the model's window (e.g. `0/1.0M tokens (0.0%)`), split into user messages, agent
150
+ responses and tool calls. Esc closes it.
151
+ - `/credits`: remaining G1 credits. With **Use AI Credits** on, the agent keeps going on credits after the quota ends;
152
+ turning it on spends money, so ask the user.
153
+ - Not yet observed: the quota-exhausted screen.
154
+
155
+ ## Keys
156
+
157
+ | Key | Raw | Action |
158
+ |---|---|---|
159
+ | Enter | `\n` | Send or confirm |
160
+ | Esc | `\e` | Go back / dismiss |
161
+ | Ctrl+C | `\x03` | Go back / dismiss |
162
+ | Backspace | `\x7f` | Delete a character |
163
+ | ↑ / ↓ | `\e[A` / `\e[B` | Navigate |
164
+ | Shift+Tab | `\e[Z` | **Cycles Agent Mode**: do not send unless asked |
165
+ | Ctrl+K | `\x0b` | **Approves a subagent**: same care as a permission prompt |
166
+ | Ctrl+D | `\x04` | **Exits the CLI**: never send |
167
+ | Ctrl+Z | `\x1a` | **Suspends the CLI**: never send |
168
+ | `?` | `?` | Help panel (general, commands, shortcuts) |
169
+
170
+ ## Slash commands for the Maestro
171
+
172
+ `/model`, `/effort`, `/config`, `/permissions`, `/usage`, `/credits`, `/clear`, `/compact`, `/context`, `/resume`,
173
+ `/rewind`, `/tasks`, `/btw` (side question without interrupting the task), `/skills`, `/mcp`, `/hooks`, `/help`. `/exit`
174
+ and `/logout` stop the agent or sign it out: only when the user asks.
175
+
176
+ ## Built-in capabilities
177
+
178
+ Tools as the agent listed them (Gemini 3.8 Flash): `read_file` (text, images, audio, video, PDF), `edit_file`,
179
+ `write_file`, `run_command`, `manage_task`, `ask_question`, `invoke_subagent`, `define_subagent`, `manage_subagents`,
180
+ `send_message`, `schedule`, `search_web`.
181
+
182
+ | Need | How |
183
+ |---|---|
184
+ | Web search | `search_web` |
185
+ | Read images, audio, video, PDF | `read_file` |
186
+ | Drive a browser | `/browser <task>`: browser subagent on Google Chrome, records the session (docs; not tried) |
187
+ | Subagents | `invoke_subagent`; approve them in `/agents` (Ctrl+K approves in place) |
188
+ | Plan before editing | `/plan [task]` or Agent Mode `plan` |
189
+ | Side question while it works | `/btw <query>` |
190
+ | Run until a goal is met | `/goal <objective>` |
191
+ | Timer or recurring task | `/schedule <when> <task>` |
192
+ | Code search | `/codesearch <query>` |
193
+ | Background shell logs | `/tasks` |
194
+
195
+ Built-in skills (`~/.gemini/antigravity-cli/builtin/skills`, marked `built-in` in `/skills`): `agy-customizations`,
196
+ `antigravity-guide`, `schedule automation`, `migrate-workflows`, `run-workflow` (Python script that orchestrates many
197
+ agents). The folder also holds `generative_ui`, `permissioned-github`, `plugin` and `ui-plugin-navigation`, which
198
+ `/skills` did not list as built-in in the CLI.
199
+
200
+ `/skills` also lists skills from `~/.gemini/config/skills` (where Maestri installs its own) and from plugins: those are
201
+ not built in.
202
+
203
+ ## Not yet observed
204
+
205
+ Quota-exhausted screen, logged-out screen, model or network errors, and how Queued Messages behaves while the agent is
206
+ busy.
@@ -0,0 +1,203 @@
1
+ # Claude Code
2
+
3
+ Verified live on Claude Code 2.1.302, Windows, Claude Max account (2026-10-27).
4
+
5
+ ## Identify
6
+
7
+ - Launch command: `claude`, e.g. `claude --model claude-haiku-5-5 --effort low`.
8
+ - Banner: `Claude Code v<version>`, model and effort, plan (`Claude Max`), working folder.
9
+ - Account: `/config` → **Status** tab (login method and account). The banner shows only the plan.
10
+ - Input prompt is `❯` (not `>`).
11
+ - Footer shows the permission mode: `⏵⏵ auto mode on (shift+tab to cycle)`, `⏸ manual mode on · ? for shortcuts`,
12
+ `⏵⏵ accept edits on`, `⏸ plan mode on`. Effort shows above the input: `○ low · /effort`.
13
+
14
+ ## States
15
+
16
+ | State | On screen |
17
+ |---|---|
18
+ | Idle | Empty `❯` input; footer with the mode |
19
+ | Prompt suggestion | Greyed text in the `❯` input, e.g. `❯ Try "write a test for <filepath>"` or a follow-up like `❯ delete the file ...`. **Nobody typed it**: it is a suggestion, never an instruction or a reply |
20
+ | Working | Spinner line, e.g. `✻ Brewing…` |
21
+ | Permission prompt | `Do you want to create <file>?` or `Do you want to proceed?` with numbered options |
22
+ | Menu or panel | Picker with hints such as `Esc to cancel` |
23
+ | Done | Agent's reply, then `✻ <verb> for <time> · done <clock>` and an empty input |
24
+ | Denied or interrupted | `⎿ Interrupted · What should Claude do instead?` |
25
+
26
+ Lines like `● Write(<file>)`, `⎿ $ <command>` and `Ran 1 shell command` show up while the prompt is still open, and
27
+ `Ran 1 shell command` stays even when the command was denied. Trust only the result line (`⎿ Wrote 1 line to <file>`) or
28
+ the agent's reply.
29
+
30
+ ## Sending a prompt
31
+
32
+ Send the text and the Enter in **separate** `--raw` calls. Text and `\n` sent together are taken as a paste: the newline
33
+ lands in the input and nothing is sent.
34
+
35
+ ```bash
36
+ maestri ask "Agent" --raw "your prompt"
37
+ maestri ask "Agent" --raw "\n"
38
+ ```
39
+
40
+ ## Autonomous launch and command rules
41
+
42
+ Verified on Claude Code 2.1.302, Windows (2026-11-06): installed help and isolated startup argument checks.
43
+
44
+ ```bash
45
+ claude --permission-mode auto
46
+ ```
47
+
48
+ Auto mode reviews actions without routine prompts. It is distinct from `acceptEdits`, which still prompts for commands.
49
+ Confirm `auto mode on` after launch; availability can depend on account or managed policy. The isolated startup accepted
50
+ the flag and settings example below but stopped at login, so authenticated action execution was not tested here.
51
+
52
+ For a limited agent, prepare an isolated settings file and launch:
53
+
54
+ ```bash
55
+ claude --permission-mode dontAsk --settings /path/to/limited.json
56
+ ```
57
+
58
+ ```json
59
+ {
60
+ "permissions": {
61
+ "allow": ["Bash(npm --version)", "PowerShell(npm --version)"],
62
+ "deny": ["Bash(git push *)", "PowerShell(git push *)"]
63
+ }
64
+ }
65
+ ```
66
+
67
+ `dontAsk` denies actions that would otherwise prompt; explicit grants and operations needing no approval still run.
68
+ This is an approval allowlist, not a complete commands-only boundary. Bash and PowerShell need separate rules.
69
+ Denies override asks, which override allows; a broad deny cannot have an allow exception. Narrow command rules do not
70
+ replace OS isolation. `--tools` can additionally limit available tools when the task needs that restriction.
71
+
72
+ Persistent rules live in `~/.claude/settings.json` (under `CLAUDE_CONFIG_DIR` when set), `.claude/settings.json` or
73
+ `.claude/settings.local.json`; `--settings` adds invocation settings without editing those files. Use an isolated
74
+ `CLAUDE_CONFIG_DIR` for tests. The file schema and precedence are documented in
75
+ [permissions](https://code.claude.com/docs/en/permissions); only flag acceptance was tested with the fake home.
76
+
77
+ `--dangerously-skip-permissions` and `--permission-mode bypassPermissions` bypass permission checks. Use them only
78
+ at the user's explicit request, never as the default autonomous launch.
79
+
80
+ ## Permission prompts
81
+
82
+ Only in `manual` mode (and for commands in `accept edits`). In `auto` mode the agent decides on its own and asks only
83
+ for risky actions. Read-only commands such as `echo` run without asking.
84
+
85
+ File creation or edit:
86
+
87
+ ```text
88
+ Do you want to create <file>?
89
+ ❯ 1. Yes
90
+ 2. Yes, and switch to accept edits (auto-approve file edits and common file commands) for this session (shift+tab)
91
+ 3. No
92
+ Esc to cancel · Tab to amend
93
+ ```
94
+
95
+ Command:
96
+
97
+ ```text
98
+ Bash command
99
+ Do you want to proceed?
100
+ ❯ 1. Yes
101
+ 2. Yes, and always allow access to <folder> from this project
102
+ 3. Yes, and switch to auto mode · auto mode handles these prompts for you
103
+ 4. No
104
+ Esc to cancel · Tab to amend
105
+ ```
106
+
107
+ - Option 1 is preselected: Enter (`\n`) approves once. **A number key picks its option at once**, with no Enter.
108
+ - Every option other than "Yes" and "No" changes the mode for the session or persists a rule for the project: ask the
109
+ user first.
110
+ - "No" interrupts the turn and the agent waits for new instructions.
111
+
112
+ ## Permission mode
113
+
114
+ Shift+Tab (`\e[Z`) cycles: `auto` → `manual` → `accept edits` → `plan` → `auto`. The change lasts for the session. The
115
+ default for new sessions is **Default permission mode** in `/config`.
116
+
117
+ ## Model and effort
118
+
119
+ - `/model`, Enter → **Select model**. ↑/↓ picks, ←/→ sets effort.
120
+ - **Enter saves the model as the default for every new session.** Press `s` to use it in this session only. Esc cancels
121
+ (`⎿ Kept model as <model>`).
122
+ - **Exact ids:** `claude --help` documents `--model` with an alias for the latest model (`opus`, `sonnet`, `fable`) or a
123
+ full name such as `claude-opus-5-5`, `claude-sonnet-5-5` or `claude-haiku-5-5`, and `--effort` with `low`, `medium`,
124
+ `high`, `xhigh` or `max`. Presets in `maestri preset list` show working commands. `/effort` sets effort alone.
125
+
126
+ ## Settings (`/config`)
127
+
128
+ - One panel with tabs: **Settings**, **Status**, **Config**, **Usage**, **Stats**. ↑ from the top of the list reaches
129
+ the tabs; ←/→ switches tab. Typing filters settings. Esc clears the search, then closes.
130
+ - Enter or ↓ moves from the search box into the list; Enter on a setting changes it. Navigate with ↑/↓ only.
131
+ - Settings that matter to the Maestro: **Default permission mode**, **Model**, **Continue automatically at usage
132
+ limit**, **Prompt suggestions** (the greyed suggestions in the input), **Auto-compact**, **Thinking mode**, **Fast
133
+ mode**.
134
+ - **Status** tab: version, session id, login method and account, model, MCP servers, setting sources, and system
135
+ diagnostics (e.g. a PATH warning).
136
+ - Persistent settings live in `~/.claude/settings.json`, `.claude/settings.json` and `.claude/settings.local.json`;
137
+ prefer them, or launch flags, over the TUI.
138
+
139
+ ## Quota
140
+
141
+ - `/config` → **Usage** tab (↑ from the list reaches the tabs, → three times from Settings): limits with a bar, the
142
+ **percent used** and the reset time, e.g. `Current week (all models) … 80% used · Resets Nov 6, 2am`. Windows:
143
+ current session (five hours), current week (all models), current week per model family. Below them, hints on what
144
+ drives usage (long contexts, always-on context). Usage credits are off unless turned on with `/usage-credits`.
145
+ - `/context`: how much of the context window is in use. Not yet verified live on this version: read the screen.
146
+ - **Continue automatically at usage limit** in `/config` lets the agent keep going when a limit is hit.
147
+ - Recovery: wait for the reset, or move the agent to another account with
148
+ `maestri recruit --replace "Name" --account "Other"`.
149
+ - Not yet observed: the limit-reached screen.
150
+
151
+ ## Keys
152
+
153
+ | Key | Raw | Action |
154
+ |---|---|---|
155
+ | Enter | `\n` | Send or confirm (send it apart from the text) |
156
+ | Esc | `\e` | Close a panel; cancel a prompt; interrupts the agent while it works. **Twice** clears the input |
157
+ | Backspace | `\x7f` | Delete a character |
158
+ | ↑ / ↓ | `\e[A` / `\e[B` | Navigate |
159
+ | 1-9 | `1`... | Pick a numbered option immediately |
160
+ | Shift+Tab | `\e[Z` | **Cycles the permission mode**: do not send unless asked |
161
+ | Alt+P | | **Switches model** |
162
+ | Ctrl+C | `\x03` | Interrupts or clears; **twice, exits** |
163
+ | Ctrl+D | `\x04` | **Exits**: never send |
164
+ | `?` | `?` | Shortcuts panel (in an empty input) |
165
+ | `!` | `!` | Shell mode (in an empty input) |
166
+
167
+ ## Slash commands for the Maestro
168
+
169
+ `/model`, `/effort`, `/config` (settings, status, usage), `/permissions`, `/context`, `/compact [what to keep]`,
170
+ `/clear`, `/resume`, `/rewind`, `/btw` (side question), `/mcp`, `/hooks`, `/help`. `/exit`, `/logout` and `/login` stop
171
+ the agent or change its login: only when the user asks.
172
+
173
+ ## Built-in capabilities
174
+
175
+ Tools (from the docs, present in a Claude Code 2.1.302 session): `Read`, `Edit`, `Write`, `Glob`, `Grep`, `Bash`,
176
+ `PowerShell`, `NotebookEdit`, `WebSearch`, `WebFetch`, `Agent`, `SendMessage`, `Workflow`, `Monitor`, `CronCreate`,
177
+ `EnterPlanMode`, `EnterWorktree`, `AskUserQuestion`, `Skill`, `Artifact` (claude.ai login on a paid plan). Some load on
178
+ demand through `ToolSearch`.
179
+
180
+ | Need | How |
181
+ |---|---|
182
+ | Web search, read a URL | `WebSearch`, `WebFetch` |
183
+ | Read images, PDF | `Read`; paste an image with Alt+V on Windows |
184
+ | Drive a browser | Only with the Claude in Chrome extension enabled |
185
+ | Subagents | `Agent` (types `Explore`, `Plan`, `general-purpose`) |
186
+ | Many agents from a script | `Workflow`; `/deep-research <question>` (paid plans) |
187
+ | Code review | `/code-review`, `/security-review` |
188
+ | Plan before editing | Plan mode (Shift+Tab) or `/plan` |
189
+ | Side question while it works | `/btw` (no tools, out of history) |
190
+ | Repeat or schedule | `/loop`, `/schedule` |
191
+ | Git worktree | `claude --worktree <name>`, `EnterWorktree` |
192
+ | Shareable page | `Artifact` |
193
+
194
+ Bundled skills (`disableBundledSkills` turns them off): `/code-review`, `/simplify`, `/security-review`, `/loop`,
195
+ `/schedule`, `/run`, `/verify`, `/batch`, `/claude-api`, `/dataviz`, `/update-config`, `/fewer-permission-prompts`,
196
+ `/debug`, `/doctor`, `/init`, the artifact guides, and `/workflow-authoring` when workflows are on.
197
+
198
+ Skills with a `plugin:` prefix, from the claude.ai account (`anthropic-skills:`), or in `~/.claude/skills` (where
199
+ Maestri installs its own) are not built in.
200
+
201
+ ## Not yet observed
202
+
203
+ Limit-reached screen, logged-out screen, API or network errors.