ur-agent 1.33.0 → 1.35.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.
@@ -161,11 +161,11 @@ while keeping them project-local and manifest-backed:
161
161
  | Primitive | UR surface | Project-backed source |
162
162
  | --- | --- | --- |
163
163
  | Agent | `ur`, `ur agents`, `ur crew`, `ur bg`, `ur agent-templates` | `.ur/agents/`, `AGENTS.md`, `UR.md` |
164
- | Rules | `ur context-pack scan`, `ur safety`, `ur guardrails`, `/hooks` | `AGENTS.md`, `UR.md`, `.cursor/rules/*.mdc`, `.cursorrules`, `.ur/safety-policy.json`, `.ur/guardrails.json`, `.ur/hooks.json` |
164
+ | Rules | `ur context-pack scan`, `ur safety`, `/guardrails`, `/hooks` | `AGENTS.md`, `UR.md`, `.cursor/rules/*.mdc`, `.cursorrules`, `.ur/safety-policy.json`, `.ur/guardrails.json`, `.ur/hooks.json` |
165
165
  | MCP | `ur mcp`, built-in MCP server mode, MCP tools/resources | `.mcp.json`, `.ur/mcp/`, plugin manifests |
166
166
  | Skills | `/skills`, `/create-skill`, bundled skills, plugin skills | `.ur/skills/`, user skills, plugin skill folders |
167
167
  | CLI | `ur --help`, `ur -p`, `ur exec`, `ur acp`, workflow subcommands | `package.json` scripts, `.ur/project-manifest.json`, `.ur/verify.json` |
168
- | Models | `ur model`, `ur model-doctor`, model router, Ollama discovery | Ollama endpoint, settings, `OLLAMA_MODEL`, model metadata cache |
168
+ | Models | `/model`, `ur model-doctor`, model router, Ollama discovery | Ollama endpoint, settings, `OLLAMA_MODEL`, model metadata cache |
169
169
 
170
170
  ## v1.19.0 Additions
171
171
 
@@ -76,7 +76,7 @@ Inside an interactive session:
76
76
  | Reliable repo editing | Covered | `ur repo-edit` builds a file/symbol index, performs AST-aware JS/TS identifier rename planning, previews patches before writing, and applies multi-file edits transactionally with rollback on syntax or check failure | Extend AST edits beyond identifier rename into import moves and signature-aware refactors |
77
77
  | Permission and safety policy | Covered | `ur safety`, `.ur/safety-policy.json`, pre-Bash safety evaluation, read/write/execute/network command classes, destructive-command approval, sandbox recommendations, and secret exfiltration denial | Record sandbox attestation in every risky command's evidence trail |
78
78
  | Project context management | Covered | `ur context-pack`, `.ur/project-manifest.json`, `.ur/context/*`, Project DNA, instruction files, verify gates, and task memory for decisions/constraints/commands/diffs | Feed the generated project manifest into subagent prompt selection and verifier gate choice |
79
- | AGENTS.md interoperability | Covered | `AGENTS.md` loaded as runtime project context (before `UR.md`), plus imported at `ur init` | Keep aligned as the AGENTS.md spec evolves |
79
+ | AGENTS.md interoperability | Covered | `AGENTS.md` loaded as runtime project context (before `UR.md`), plus imported by the `/init` command | Keep aligned as the AGENTS.md spec evolves |
80
80
  | Browser and computer-use workflows | Covered | `/browser`, `/chrome`, Playwright-aware tasks, WebSearch, WebFetch, risky-action approval | Add more release fixtures with screenshots and replay assertions |
81
81
  | Provenance and citations | Partial | WebFetch source URLs, `/cite`, `/graph`, `/trace`, evidence ledgers | Add claim-to-source mapping for web/MCP answers |
82
82
  | Evals and observability | Covered | verifier gates, `.ur/verify.json`, `/verify`, `/trace`, OpenTelemetry hooks, release checks, eval dashboard, benchmark adapters | Publish benchmark numbers from local reproducible suites |
@@ -10,9 +10,10 @@ UR-AGENT supports official provider access paths only:
10
10
  OpenAI-compatible endpoints.
11
11
  - Local/server providers: Ollama, LM Studio, llama.cpp, and vLLM OpenAI-compatible
12
12
  server mode.
13
- - External app bridges: Codex CLI, Claude Code CLI, Gemini CLI, and Antigravity
14
- where officially supported. These are diagnostics/opt-in bridges, not required
15
- dependencies for normal UR runtime.
13
+ - Subscription CLI providers: Codex CLI, Claude Code CLI, Gemini CLI, and
14
+ Antigravity where officially supported. These dispatch turns through the
15
+ vendor's official CLI using your subscription login. They are optional and
16
+ never required for normal UR runtime.
16
17
 
17
18
  UR-AGENT never scrapes browser sessions, extracts OAuth refresh tokens, reads
18
19
  hidden provider auth files, bypasses provider restrictions, or proxies consumer
@@ -48,10 +49,10 @@ ur config set base_url <url>
48
49
 
49
50
  Provider values accept canonical IDs and common aliases. Examples:
50
51
  `openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
51
- `lmstudio`, `LM Studio`, `llama.cpp`, and `vllm`. External app bridge aliases
52
- such as `codex-cli`, `claude-code-cli`, `gemini-cli`, and `antigravity-cli` are
53
- accepted only when `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set. Values with
54
- spaces should be quoted in shell commands.
52
+ `lmstudio`, `LM Studio`, `llama.cpp`, `vllm`, and the subscription CLI
53
+ providers `codex-cli` (`chatgpt`), `claude-code-cli` (`claude`), `gemini-cli`
54
+ (`gemini`), and `antigravity-cli` (`agy`). Values with spaces should be quoted
55
+ in shell commands.
55
56
 
56
57
  In the interactive app, `/model` is provider-first: choose a provider, then
57
58
  choose a model from that provider only. The picker labels providers as
@@ -70,8 +71,9 @@ ur provider status
70
71
  The status output includes active provider, active model, access type,
71
72
  credential type, and runtime backend.
72
73
 
73
- API keys are not written to UR settings. Set them in the environment when you
74
- explicitly choose API mode:
74
+ API keys are never written to UR settings files. Store one securely with
75
+ `ur connect <provider>` (OS keychain, with an encrypted file fallback), or set
76
+ it in the environment when you explicitly choose API mode:
75
77
 
76
78
  ```sh
77
79
  OPENAI_API_KEY=...
@@ -0,0 +1,204 @@
1
+ # Troubleshooting
2
+
3
+ Each entry lists the symptom, the likely cause, the fix, and a command that
4
+ verifies the fix.
5
+
6
+ ## Install and startup
7
+
8
+ ### `ur: command not found`
9
+
10
+ - Likely cause: the package is not installed globally, or the npm/bun global
11
+ bin directory is not on `PATH`.
12
+ - Fix: reinstall globally and check the global bin path.
13
+
14
+ ```sh
15
+ npm install -g ur-agent
16
+ npm prefix -g # ensure <prefix>/bin is on PATH
17
+ ur --version
18
+ ```
19
+
20
+ ### `npm install -g ur-agent` fails
21
+
22
+ - Likely cause: permission errors on the global prefix, or an old Node.js.
23
+ - Fix: use a user-writable npm prefix (or a Node version manager), then retry.
24
+
25
+ ```sh
26
+ npm config set prefix ~/.npm-global # then add ~/.npm-global/bin to PATH
27
+ npm install -g ur-agent
28
+ ur --version
29
+ ```
30
+
31
+ ### Bun is missing or too old
32
+
33
+ - Likely cause: UR runs through Bun; source checkouts and the GitHub install
34
+ path need Bun (this repository pins `bun@1.3.14`).
35
+ - Fix: install Bun, then rerun.
36
+
37
+ ```sh
38
+ npm install -g bun # or: curl -fsSL https://bun.sh/install | bash
39
+ bun --version
40
+ ```
41
+
42
+ ### Invalid or corrupted settings
43
+
44
+ - Likely cause: malformed JSON in `~/.ur/settings.json` or project settings.
45
+ - Fix: repair the JSON or set values through safe config commands instead of
46
+ editing by hand.
47
+
48
+ ```sh
49
+ ur config set provider ollama
50
+ ur provider status
51
+ ```
52
+
53
+ ## Providers and models
54
+
55
+ ### Provider selected but the model is unavailable
56
+
57
+ - Likely cause: the model was never pulled/served, or it belongs to a
58
+ different provider.
59
+ - Fix: pick a model scoped to the active provider.
60
+
61
+ ```sh
62
+ ur provider status
63
+ ur config set model <model-from-this-provider> # or use /model in a session
64
+ ```
65
+
66
+ ### Selected model belongs to another provider
67
+
68
+ - Likely cause: provider was changed and the old model is incompatible; UR
69
+ warns and clears the model in this case.
70
+ - Fix: choose a model from the current provider's list.
71
+
72
+ ```sh
73
+ ur provider status
74
+ # then in a session: /model
75
+ ```
76
+
77
+ ### Requests appear to hit the wrong backend
78
+
79
+ - Likely cause: a stale provider/model pair.
80
+ - Fix: inspect the runtime backend; there is no cross-provider fallback, so
81
+ the reported backend is the one receiving requests.
82
+
83
+ ```sh
84
+ ur provider status
85
+ ur provider doctor
86
+ ```
87
+
88
+ ### Subscription CLI exits non-zero
89
+
90
+ - Likely cause: the vendor CLI (codex, claude, gemini, agy) is missing or not
91
+ logged in.
92
+ - Fix: install the official CLI and log in.
93
+
94
+ ```sh
95
+ ur provider doctor codex-cli # or claude-code-cli, gemini-cli, antigravity-cli
96
+ ur auth chatgpt # or: ur auth claude | gemini | antigravity
97
+ ```
98
+
99
+ ### Provider produces output but exits with an error
100
+
101
+ - Likely cause: the vendor CLI wrote a partial result and then failed (quota,
102
+ network, auth expiry). UR reports the provider, model, and backend with the
103
+ failure instead of discarding the output silently.
104
+ - Fix: read the reported provider error, then re-check login/quota.
105
+
106
+ ```sh
107
+ ur provider doctor <provider-id>
108
+ ```
109
+
110
+ ### Model discovery fails / model list is empty
111
+
112
+ - Likely cause: for local/server providers the endpoint is down; for API
113
+ providers the key is missing, so only the curated fallback list shows.
114
+ - Fix: start the server or connect the key.
115
+
116
+ ```sh
117
+ curl http://localhost:11434/api/tags # Ollama
118
+ curl http://localhost:1234/v1/models # LM Studio (llama.cpp: 8080, vLLM: 8000)
119
+ ur connect openai-api # store an API key securely
120
+ ur provider doctor
121
+ ```
122
+
123
+ ### Local server unreachable
124
+
125
+ - Likely cause: wrong `base_url` or the server is not running.
126
+ - Fix: point UR at the right endpoint.
127
+
128
+ ```sh
129
+ ur config set base_url http://localhost:11434
130
+ ur provider doctor
131
+ ```
132
+
133
+ ## Sessions and workflows
134
+
135
+ ### No visible progress in scripts
136
+
137
+ - Likely cause: `ur -p` prints the final result only.
138
+ - Fix: stream structured progress.
139
+
140
+ ```sh
141
+ ur -p --output-format stream-json "explain this repository"
142
+ ```
143
+
144
+ ### Dry-run works but the real run fails
145
+
146
+ - Likely cause: `--dry-run` skips model calls and permissions; the real run
147
+ needs a reachable provider and permission approval.
148
+ - Fix: verify the provider, then run without `--dry-run` and approve prompts
149
+ (or scope tools explicitly).
150
+
151
+ ```sh
152
+ ur provider status
153
+ ur -p --allowed-tools "Read,Edit,Bash(git:*)" "run the task"
154
+ ```
155
+
156
+ ### Permission or sandbox issues
157
+
158
+ - Likely cause: the requested command is classified as write/execute/network
159
+ and requires approval, or sandbox dependencies are missing.
160
+ - Fix: inspect the policy and the sandbox status.
161
+
162
+ ```sh
163
+ ur safety check --command "<the command>"
164
+ ur sandbox status
165
+ ```
166
+
167
+ ### Tests fail after an agent edit
168
+
169
+ - Likely cause: the edit broke a project gate.
170
+ - Fix: use the CI loop to repair with bounded attempts, or inspect verify
171
+ gates.
172
+
173
+ ```sh
174
+ ur ci-loop --command "bun test" --max-attempts 3
175
+ ur test-first detect
176
+ ```
177
+
178
+ ## Integrations
179
+
180
+ ### Plugin fails to load
181
+
182
+ - Likely cause: invalid manifest or wrong install scope.
183
+ - Fix: validate the manifest and re-check installed state.
184
+
185
+ ```sh
186
+ ur plugin doctor
187
+ ur plugin list
188
+ ```
189
+
190
+ ### ACP / editor connection issues
191
+
192
+ - Likely cause: the ACP server is not running, or the editor config block is
193
+ missing.
194
+ - Fix: check status, regenerate the editor config, and run the IDE doctor.
195
+
196
+ ```sh
197
+ ur acp status
198
+ ur ide doctor
199
+ ur ide config zed # or vscode, cursor, windsurf, jetbrains, neovim
200
+ ```
201
+
202
+ If a problem persists, run the repository's validation runbook
203
+ ([docs/VALIDATION.md](VALIDATION.md)) and file an issue at
204
+ <https://github.com/Maitham16/UR/issues> with the exact command and output.
package/docs/USAGE.md CHANGED
@@ -115,24 +115,25 @@ back to Ollama, Claude API does not fall back to Claude Code, and local/server
115
115
  providers do not leak cloud model lists. Use `ur provider status` to inspect the
116
116
  active provider, model, access type, and runtime backend.
117
117
 
118
- The default provider list keeps subscription access visible as `subscription`,
119
- but it is marked unavailable unless a real independent subscription runtime is
120
- configured. UR does not list fake subscription models and does not call provider
121
- apps by default.
118
+ The provider list shows API, local/server, and subscription CLI providers.
119
+ Subscription CLIs (Codex CLI, Claude Code, Gemini CLI, Antigravity) are
120
+ first-class: selecting one dispatches turns through the vendor's official CLI
121
+ using your subscription login (`ur auth <provider>`). The generic
122
+ `subscription` entry is an internal placeholder and is hidden from listings;
123
+ UR does not list fake subscription models.
122
124
 
123
125
  Provider values accept canonical IDs and common aliases. For example,
124
126
  `openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
125
- `lmstudio`, `llama.cpp`, and `vllm` are normal UR-native runtime providers.
126
- External app bridge aliases such as `codex-cli`, `claude-code-cli`,
127
- `gemini-cli`, and `antigravity-cli` are accepted only when the external bridge
128
- opt-in is enabled.
127
+ `lmstudio`, `llama.cpp`, and `vllm` are UR-native runtime providers, and
128
+ `codex-cli` (`chatgpt`), `claude-code-cli` (`claude`), `gemini-cli` (`gemini`),
129
+ and `antigravity-cli` (`agy`) are subscription CLI providers.
129
130
 
130
- API modes are explicit and read keys only from environment variables:
131
+ API modes are explicit. Keys are read from a key stored via
132
+ `ur connect <provider>` (OS keychain) or from the environment variables
131
133
  `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`, and
132
- `OPENROUTER_API_KEY`. Provider app bridges are not required dependencies; they
133
- are blocked from normal runtime selection unless
134
- `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set. UR-AGENT never scrapes browser
135
- sessions, extracts OAuth tokens, or bypasses provider restrictions.
134
+ `OPENROUTER_API_KEY`. Subscription CLIs are optional, never required
135
+ dependencies, and never used as a silent fallback. UR-AGENT never scrapes
136
+ browser sessions, extracts OAuth tokens, or bypasses provider restrictions.
136
137
  OpenAI-compatible local or cloud endpoints use `base_url` plus `model`.
137
138
 
138
139
  Use `/model` in an interactive session to select provider first and model
@@ -208,6 +209,7 @@ Hooks are advisory by default. A `BeforeEdit`/`BeforeCommand`/`BeforeCommit` hoo
208
209
  UR includes slash commands and CLI subcommands for common workflows:
209
210
 
210
211
  - `/help` or `ur --help` for command discovery
212
+ - `ur connect ...` to connect provider accounts (subscription login or stored API key)
211
213
  - `ur mcp ...` to configure MCP servers
212
214
  - `ur plugin ...` to manage plugins and marketplaces. Marketplace plugins can
213
215
  add MCP tools, commands, executable skills, templates, validators, language
@@ -238,6 +240,24 @@ UR includes slash commands and CLI subcommands for common workflows:
238
240
  - `ur eval bench ...` to import local SWE-bench, Terminal-Bench, or Aider Polyglot exports
239
241
  - `ur crew ...` to run lead+worker agent crews with optional automatic task decomposition
240
242
  - `ur pattern ...` to run multi-agent collaboration patterns (PEER, DOE, concurrent, handoff, debate, parallel)
243
+ - `ur workflow ...` to define, validate, graph, run, and resume declarative agent workflows
244
+ - `ur goal ...` to track long-horizon objectives that persist across sessions
245
+ - `ur task ...` to run worktree-per-task sessions with PR handoff
246
+ - `ur worktree ...` to list, inspect, and clean up UR agent worktrees
247
+ - `ur automation ...` to store and run project-local scheduled automation specs
248
+ - `ur sandbox ...` to inspect sandbox/permission architecture and command approval levels
249
+ - `ur knowledge ...` to manage a curated project knowledge base with provenance
250
+ - `ur semantic-memory ...` to build and search the project-local memory index
251
+ - `ur claim-ledger ...` to map generated claims to their sources
252
+ - `ur route ...` to classify a task and recommend a subagent and collaboration pattern
253
+ - `ur model-doctor` and `ur model-route ...` to inspect local Ollama models and pick one by capability fit
254
+ - `ur local-first` to report readiness for offline/no-cloud environments
255
+ - `ur browser-qa ...` to validate and smoke-run browser QA replay fixtures
256
+ - `ur trigger ...` to parse GitHub/Slack webhook payloads and optionally launch a headless run
257
+ - `ur agent-templates ...`, `ur agent-task ...`, `ur agent-inspect`, `ur agent-features`, and `ur agent-trends` for agent template, PR handoff, timeline, and coverage utilities
258
+ - `ur role-mode ...` to install built-in Architect, Code, Debug, and Ask role modes
259
+ - `ur a2a ...` for Agent Card metadata, delegation tokens, and the opt-in A2A task server
260
+ - `ur sdk ...` to scaffold TS/Python headless SDK examples
241
261
  - `ur doctor` to inspect CLI health
242
262
  - `ur update` or `ur upgrade` to check for updates
243
263
 
@@ -253,11 +273,13 @@ Interactive sessions include a compact bottom status bar when stdout is a real
253
273
  terminal:
254
274
 
255
275
  ```text
256
- Ollama | llama3 | ask | main | update 1.30.6 available
276
+ Ollama | llama3 | ask | main
257
277
  ```
258
278
 
259
- The bar is not rendered in non-interactive mode, CI, dumb terminals, or
260
- assistant viewer mode. Custom status-line hooks override the built-in bar.
279
+ When a newer npm release exists, the bar appends an
280
+ `update <version> available` segment. The bar is not rendered in
281
+ non-interactive mode, CI, dumb terminals, or assistant viewer mode. Custom
282
+ status-line hooks override the built-in bar.
261
283
 
262
284
  ## IDE Integration
263
285
 
@@ -18,7 +18,7 @@ You need:
18
18
 
19
19
  ```sh
20
20
  ur --version
21
- # expected: 1.25.3 (UR-AGENT)
21
+ # expected: the version from package.json, e.g. "1.35.0 (UR-AGENT)"
22
22
  ```
23
23
 
24
24
  ## 0.1 Permission safety and context pack (1.19.0)
package/docs/providers.md CHANGED
@@ -3,9 +3,10 @@
3
3
  UR-AGENT integrates official model access paths only. API-key providers, local
4
4
  runtimes, and OpenAI-compatible servers are UR-native backends: UR owns the
5
5
  conversation loop, tool loop, streaming, errors, and output. Subscription CLI
6
- integrations are external app bridges, not required dependencies. They stay
7
- diagnosable, but normal runtime selection blocks them unless
8
- `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set.
6
+ providers (Codex CLI, Claude Code, Gemini CLI, Antigravity) are external app
7
+ bridges: they are first-class in `/model` and dispatch each turn through the
8
+ vendor's official CLI using your subscription login. They are optional, never
9
+ required dependencies, and never used as a silent fallback.
9
10
 
10
11
  ## Legal auth policy
11
12
 
@@ -35,7 +36,10 @@ variables only when the user explicitly selects API mode.
35
36
  | LM Studio | local/server | UR-native | `openai-compatible:lmstudio` | local OpenAI-compatible server |
36
37
  | llama.cpp | local/server | UR-native | `openai-compatible:llama.cpp` | local OpenAI-compatible server |
37
38
  | vLLM | local/server | UR-native | `openai-compatible:vllm` | OpenAI-compatible server |
38
- | External app bridges | subscription | opt-in diagnostics | `subscription-cli:*` | disabled unless explicitly enabled |
39
+ | Codex CLI | subscription | external app bridge | `subscription-cli:codex` | official Codex CLI login |
40
+ | Claude Code | subscription | external app bridge | `subscription-cli:claude-code` | official Claude Code CLI login |
41
+ | Gemini CLI | subscription | external app bridge | `subscription-cli:gemini` | official Gemini Code Assist login |
42
+ | Antigravity | subscription | external app bridge | `subscription-cli:antigravity` | official Antigravity CLI login, where supported |
39
43
 
40
44
  ## Commands
41
45
 
@@ -45,8 +49,11 @@ ur provider status
45
49
  ur provider doctor
46
50
  ur provider doctor codex-cli
47
51
  ur provider doctor agy
48
- # Optional external app bridge diagnostics:
52
+ # Subscription CLI logins (official vendor CLIs):
49
53
  ur auth chatgpt
54
+ ur auth claude
55
+ ur auth gemini
56
+ ur auth antigravity
50
57
  ur config set provider ollama
51
58
  ur config set provider openai-api
52
59
  ur config set provider anthropic-api
@@ -69,13 +76,13 @@ through that provider's backend:
69
76
 
70
77
  - **API providers** make direct HTTP calls in each provider's native wire format: Anthropic uses `x-api-key` + `anthropic-version` against `/v1/messages`; OpenAI uses `Authorization: Bearer` against `/v1/chat/completions`; Gemini uses `x-goog-api-key` against `…:generateContent`; OpenRouter uses its OpenAI-compatible chat endpoint.
71
78
  - **Local/server providers** connect to the configured local or OpenAI-compatible endpoint (`/v1/chat/completions` for LM Studio, llama.cpp and vLLM; the native tags/chat API for Ollama)
72
- - **External app bridges** for subscription CLIs are blocked by default because
73
- they delegate turns to another agent app. If deliberately enabled with
74
- `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1`, failures still remain provider-scoped
75
- and never fall back to Ollama.
76
- - **Subscription** access is visible but blocked when no independent
77
- subscription backend exists. It does not expose fake UR model IDs and does not
78
- call external provider apps by default.
79
+ - **Subscription CLI providers** (Codex CLI, Claude Code, Gemini CLI,
80
+ Antigravity) dispatch the turn through the vendor's official CLI using your
81
+ subscription login. Failures remain provider-scoped and never fall back to
82
+ Ollama or any other provider.
83
+ - The generic **`subscription`** entry is an internal placeholder with no
84
+ models and no backend; it is hidden from listings. Choose a specific
85
+ subscription CLI, API, or local/server provider instead.
79
86
 
80
87
  The selected provider determines:
81
88
  - Which backend receives your requests
@@ -166,11 +173,11 @@ ur config set provider anthropic-api
166
173
  | API providers (openai-api, anthropic-api, gemini-api, openrouter) | Live discovery from the provider's `/models` endpoint using your connected key (curated fallback until connected) | live |
167
174
  | Local/server providers (ollama, lmstudio, llama.cpp, vllm) | Dynamic discovery from the selected provider endpoint | live |
168
175
  | OpenAI-compatible | Dynamic discovery from configured endpoint | live |
169
- | Subscription CLIs (codex-cli, claude-code-cli, gemini-cli, antigravity-cli) | Curated list (the official CLIs expose no models API); shown in `/model`, enabled once you `ur connect` them | static |
176
+ | Subscription CLIs (codex-cli, claude-code-cli, gemini-cli, antigravity-cli) | Curated list (the official CLIs expose no models API); first-class in `/model`, dispatched via the official CLI. Log in with `ur auth <provider>` | static |
170
177
 
171
178
  ### API vs Subscription distinction
172
179
 
173
- **External app bridge providers** require official CLI login and explicit runtime opt-in:
180
+ **Subscription CLI providers** require the vendor's official CLI login:
174
181
  - `codex-cli` — Codex CLI subscription via `codex login`
175
182
  - `claude-code-cli` — Claude Code subscription via `claude auth login`
176
183
  - `gemini-cli` — Gemini Code Assist enterprise login
@@ -245,9 +252,9 @@ Warning: Current model "gpt-5.5" is not available for provider "anthropic-api" a
245
252
  After changing provider, run /model or: ur config set model claude-sonnet-5
246
253
  ```
247
254
 
248
- For external app bridges, UR stores scoped IDs such as `claude-code/sonnet`,
249
- but normal runtime dispatch rejects the bridge before spawning the external app
250
- unless `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set.
255
+ For subscription CLI providers, UR stores provider-scoped model IDs such as
256
+ `claude-code/sonnet`, and runtime dispatch validates the pair against the
257
+ provider's curated list before spawning the official CLI.
251
258
 
252
259
  ### Troubleshooting
253
260
 
@@ -257,11 +264,12 @@ unless `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set.
257
264
  ur provider status
258
265
  ```
259
266
 
260
- **Provider is an external app bridge:**
261
- - Choose a UR-native API/local/server provider for normal UR interaction
262
- - Run `ur provider doctor <provider>` only to inspect the external app bridge
263
- - Set `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` only if you intentionally want UR to
264
- delegate turns to that external app
267
+ **Subscription CLI provider is not working:**
268
+ - Run `ur provider doctor <provider>` to check CLI presence and login status
269
+ - Install the vendor's official CLI if it is missing, then log in with
270
+ `ur auth <chatgpt|claude|gemini|antigravity>`
271
+ - Remember these run through the external vendor CLI; UR-native behavior
272
+ (API/local/server providers) does not require them
265
273
 
266
274
  **Provider shows "unavailable":**
267
275
  - Check API key: `echo $OPENAI_API_KEY`
@@ -39,7 +39,7 @@ const featureGroups = [
39
39
  title: 'Knowledge and memory',
40
40
  tags: ['retrieval', 'provenance', 'citations'],
41
41
  text: 'Durable memory, semantic memory, curated knowledge sources, lexical or embedding retrieval, citations, claim ledgers, and research graph primitives.',
42
- commands: ['ur knowledge', 'ur semantic-memory', 'ur remember', 'ur claim-ledger'],
42
+ commands: ['ur knowledge', 'ur semantic-memory', 'ur context-pack remember', 'ur claim-ledger'],
43
43
  },
44
44
  {
45
45
  title: 'Evaluation and verification',
@@ -56,8 +56,8 @@ const featureGroups = [
56
56
  {
57
57
  title: 'Providers and auth',
58
58
  tags: ['subscription', 'API', 'local', 'status bar'],
59
- text: 'UR-native API/local/OpenAI-compatible runtimes, visible-but-unavailable subscription access when no independent backend exists, optional external app bridge diagnostics, provider doctor checks, non-secret config, fallback hints, and provider-aware status-bar output.',
60
- commands: ['ur provider list', 'ur provider status', 'ur provider doctor agy', 'ur config set provider openai-api', 'ur config set provider ollama'],
59
+ text: 'UR-native API/local/OpenAI-compatible runtimes, first-class subscription CLI providers dispatched through the official vendor CLIs, provider doctor checks, secure API-key connect, non-secret config, fallback hints, and provider-aware status-bar output.',
60
+ commands: ['ur provider list', 'ur provider status', 'ur provider doctor agy', 'ur connect status', 'ur config set provider openai-api', 'ur config set provider ollama'],
61
61
  },
62
62
  {
63
63
  title: 'Security and operations',
@@ -265,11 +265,60 @@ const commands = [
265
265
  examples: ['ur goal add release-docs --objective "Ship professional docs" --workflow docs', 'ur goal note release-docs --note "Command reference drafted"', 'ur goal resume release-docs --dry-run', 'ur goal done release-docs'],
266
266
  },
267
267
  {
268
- name: 'install',
268
+ name: 'update',
269
269
  category: 'Ops',
270
+ aliases: ['upgrade'],
271
+ summary: 'Check npm for UR-AGENT updates.',
272
+ examples: ['ur update', 'ur upgrade'],
273
+ },
274
+ {
275
+ name: 'connect',
276
+ category: 'Providers',
277
+ aliases: [],
278
+ summary: 'Connect a provider account: subscription login through the official CLI, or store an API key in the OS keychain.',
279
+ examples: ['ur connect status', 'ur connect codex-cli', 'ur connect openai-api --key <KEY>', 'ur connect logout openai-api'],
280
+ },
281
+ {
282
+ name: 'ide',
283
+ category: 'Interop',
270
284
  aliases: [],
271
- summary: 'Install or update the native UR build for a target version/channel.',
272
- examples: ['ur install', 'ur install latest', 'ur update'],
285
+ summary: 'Manage IDE integrations: status, doctor, per-editor config, and inline diff bundles under .ur/ide/diffs.',
286
+ examples: ['ur ide status', 'ur ide doctor', 'ur ide config zed', 'ur ide diff capture --title "Parser fix"', 'ur ide diff list'],
287
+ },
288
+ {
289
+ name: 'skill',
290
+ category: 'Automation',
291
+ aliases: ['skills'],
292
+ summary: 'Executable skill workflows: list, show, run, and scaffold project skills.',
293
+ examples: ['ur skill list', 'ur skill init security-review', 'ur skill run security-review "src/auth.ts"'],
294
+ },
295
+ {
296
+ name: 'task',
297
+ category: 'Agents',
298
+ aliases: ['taskctl'],
299
+ summary: 'Start, run, and hand off worktree-per-task sessions with optional PR creation.',
300
+ examples: ['ur task list', 'ur task start parser-fix --worktree', 'ur task pr parser-fix --create --dry-run'],
301
+ },
302
+ {
303
+ name: 'sandbox',
304
+ category: 'Safety',
305
+ aliases: ['sandboxctl'],
306
+ summary: 'Inspect and manage the sandbox/permission architecture: status, dependency check, policy init, and command approval levels.',
307
+ examples: ['ur sandbox status', 'ur sandbox check', 'ur sandbox init'],
308
+ },
309
+ {
310
+ name: 'memory',
311
+ category: 'Knowledge',
312
+ aliases: [],
313
+ summary: 'Manage UR memory, including local retention policies by TTL, max entries, and decay.',
314
+ examples: ['ur memory retention show', 'ur memory retention set --ttl-days 30 --max-entries 500', 'ur memory retention prune'],
315
+ },
316
+ {
317
+ name: 'local-first',
318
+ category: 'Ops',
319
+ aliases: ['local', 'offline-readiness'],
320
+ summary: 'Show UR readiness for no-cloud, private, lab, offline, and edge/server environments.',
321
+ examples: ['ur local-first', 'ur local-first --json'],
273
322
  },
274
323
  {
275
324
  name: 'knowledge',
@@ -369,13 +418,6 @@ const commands = [
369
418
  summary: 'Scaffold requirements, design, and task documents under `.ur/specs`, track approvals, and run the task list one item at a time.',
370
419
  examples: ['ur spec init demo --goal "1. add a utils.add function 2. add a test"', 'ur spec status demo', 'ur spec approve demo requirements', 'ur spec run demo --all --dry-run', 'ur spec generate demo tasks --dry-run'],
371
420
  },
372
- {
373
- name: 'setup-token',
374
- category: 'Ops',
375
- aliases: [],
376
- summary: 'Set up a long-lived authentication token when that subscription surface is enabled.',
377
- examples: ['ur setup-token'],
378
- },
379
421
  {
380
422
  name: 'exec',
381
423
  category: 'Automation',
@@ -44,7 +44,7 @@
44
44
  <main id="content" class="content">
45
45
  <header class="topbar">
46
46
  <div>
47
- <p class="eyebrow">Version 1.30.6</p>
47
+ <p class="eyebrow">Version 1.35.0</p>
48
48
  <h1>UR-AGENT Documentation</h1>
49
49
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-AGENT.</p>
50
50
  </div>
@@ -140,13 +140,13 @@ ur -p --output-format json "Review the current diff"</code></pre>
140
140
  </div>
141
141
  <div class="reference-grid">
142
142
  <article>
143
- <h3>External app bridges</h3>
143
+ <h3>Subscription CLI providers</h3>
144
144
  <pre><code>ur auth chatgpt
145
145
  ur auth claude
146
146
  ur auth gemini
147
147
  ur auth antigravity
148
148
  ur provider doctor agy</code></pre>
149
- <p>External app bridges are optional diagnostics only. Normal runtime selection uses API, local, OpenAI-compatible, or a real configured subscription backend; the generic subscription entry does not expose fake models and stays unavailable when no independent backend exists.</p>
149
+ <p>Codex CLI, Claude Code, Gemini CLI, and Antigravity are first-class providers that dispatch each turn through the vendor's official CLI using your subscription login. They are optional, never required, and never used as a silent fallback. The generic subscription entry is an internal placeholder hidden from listings and exposes no fake models.</p>
150
150
  </article>
151
151
  <article>
152
152
  <h3>API and local providers</h3>
@@ -155,11 +155,11 @@ ur config set provider openai-api
155
155
  ur config set base_url http://localhost:11434/v1
156
156
  ur config set model qwen3-coder:480b-cloud
157
157
  ur config set provider.fallback ollama</code></pre>
158
- <p>API providers require explicit selection and read keys only from environment variables. Local providers include Ollama, LM Studio, llama.cpp server mode, and vLLM OpenAI-compatible server mode.</p>
158
+ <p>API providers require explicit selection and read keys from a key stored via <code>ur connect</code> (OS keychain) or from environment variables. Local providers include Ollama, LM Studio, llama.cpp server mode, and vLLM OpenAI-compatible server mode. Subscription CLI providers (Codex CLI, Claude Code, Gemini CLI, Antigravity) dispatch through the official vendor CLIs.</p>
159
159
  </article>
160
160
  <article>
161
161
  <h3>Status bar and updates</h3>
162
- <pre><code>Ollama | llama3 | ask | main | update 1.30.6 available</code></pre>
162
+ <pre><code>Ollama | llama3 | ask | main | update 1.35.1 available</code></pre>
163
163
  <p>The interactive status bar shows only important runtime state: provider, model, mode, branch, active tasks, checks status when known, and update availability. It is hidden in CI, dumb terminals, and non-interactive mode.</p>
164
164
  </article>
165
165
  </div>