ur-agent 1.65.6 → 1.65.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/README.md +5 -4
- package/dist/cli.js +5432 -3076
- package/dist/sdk/index.cjs +189 -0
- package/dist/sdk/index.d.ts +68 -0
- package/dist/sdk/index.js +149 -0
- package/docs/VALIDATION.md +1 -1
- package/documentation/app.js +91 -0
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +13 -2
- package/technical/01-architecture.md +146 -0
- package/technical/02-cli-reference.md +227 -0
- package/technical/03-slash-commands.md +318 -0
- package/technical/04-tools.md +119 -0
- package/technical/05-providers-and-models.md +192 -0
- package/technical/06-configuration.md +407 -0
- package/technical/07-memory-and-context.md +147 -0
- package/technical/08-skills-plugins-workflows.md +211 -0
- package/technical/09-multi-agent.md +249 -0
- package/technical/10-headless-automation-eval.md +441 -0
- package/technical/11-integrations.md +156 -0
- package/technical/12-security-sandbox-stability.md +271 -0
- package/technical/13-research.md +129 -0
- package/technical/14-sessions.md +177 -0
- package/technical/README.md +43 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# 03 — Slash Command Reference
|
|
2
|
+
|
|
3
|
+
Source of truth: `src/commands.ts` (registry) and each command definition.
|
|
4
|
+
Sections 1–13 describe the standard npm registry unless a row is explicitly labelled
|
|
5
|
+
internal, conditional, or unavailable. Sections 14–15 inventory source-only commands so
|
|
6
|
+
source presence is never mistaken for shipped capability. Descriptions and argument hints
|
|
7
|
+
come from command definitions. Aliases are shown in parentheses. Commands of type `local`
|
|
8
|
+
are also runnable from the shell as `ur <command>` only when wired in `src/main.tsx`
|
|
9
|
+
(see doc 02).
|
|
10
|
+
Registry integrity tests require unique invocation tokens, non-empty descriptions, valid
|
|
11
|
+
names/aliases, loadable implementations, and coverage in this document.
|
|
12
|
+
|
|
13
|
+
Command types: **prompt** = expands to model input · **local** = runs locally, prints text ·
|
|
14
|
+
**jsx** = interactive Ink dialog.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1. Session & conversation
|
|
19
|
+
|
|
20
|
+
| Command | Type | What it does | Example |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| `/clear` (`/reset`, `/new`) | local | Clear history, free context | `/clear` |
|
|
23
|
+
| `/compact [instructions]` | local | Summarize + clear; keeps a summary in context | `/compact keep the API design decisions` |
|
|
24
|
+
| `/resume [id or search]` (`/continue`) | jsx | Resume a previous conversation | `/resume auth refactor` |
|
|
25
|
+
| `/rename [name]` | jsx | Rename the current conversation | `/rename payment-bug` |
|
|
26
|
+
| `/tag <tag-name>` | internal | Toggle a searchable tag on this session (`USER_TYPE=ant`) | — |
|
|
27
|
+
| `/branch [name]` (`/fork`) | jsx | Branch the conversation at this point | `/branch try-other-approach` |
|
|
28
|
+
| `/rewind` (`/checkpoint`) | local | Restore code and/or conversation to a previous checkpoint | `/rewind` |
|
|
29
|
+
| `/undo` | local | Restore the most recently edited file to its pre-edit (last turn) content; deletes a file the last edit created | `/undo` |
|
|
30
|
+
| `/thread share\|list` (`/threads`) | local | Share a session transcript as a local web page on the artifacts server | `/thread share` |
|
|
31
|
+
| `/export [filename]` | jsx | Export conversation to file or clipboard | `/export session.md` |
|
|
32
|
+
| `/import-session <path>` | local | Import a session transcript exported from another machine so it can be resumed here | `/import-session ~/Downloads/session.jsonl` |
|
|
33
|
+
| `/copy` | jsx | Copy the last response to the clipboard | `/copy` |
|
|
34
|
+
| `/btw <question>` | jsx | Quick side question without derailing the main thread | `/btw what does SIGPIPE mean?` |
|
|
35
|
+
| `/exit` (`/quit`) | jsx | Exit the REPL | `/exit` |
|
|
36
|
+
| `/session` (`/remote`) | conditional jsx | Show remote session URL + QR code only in remote-session builds | — |
|
|
37
|
+
| `/desktop` (`/app`) | conditional jsx | Continue this session in UR Desktop on macOS or Windows x64 | `/desktop` |
|
|
38
|
+
| `/summary` | internal | Summarize conversation (internal builds) | — |
|
|
39
|
+
|
|
40
|
+
## 2. Context & memory
|
|
41
|
+
|
|
42
|
+
| Command | Type | What it does | Example |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| `/context` | jsx | Visualize context usage as a colored grid | `/context` |
|
|
45
|
+
| `/files` | internal | List files currently in context (`USER_TYPE=ant`) | — |
|
|
46
|
+
| `/memory` | jsx | Edit memory files (UR.md, UR.local.md, auto-memory) | `/memory` |
|
|
47
|
+
| `/remember <text>` | local | Save a fact/preference to memory | `/remember we deploy from the release branch only` |
|
|
48
|
+
| `/memory-suggest` (`/suggest-memory`) | local | Propose durable facts from this session that are not already remembered | `/memory-suggest --turns 50` |
|
|
49
|
+
| `/forget <text>` | local | Remove memory notes matching text | `/forget release branch` |
|
|
50
|
+
| `/memory-retention` (`/retention`) | local | Show/set/prune memory retention policy (`--ttl-days`, `--max-entries`, `--decay-days`) | `/memory-retention set --ttl-days 90` |
|
|
51
|
+
| `/semantic-memory` (`/memory-index`) | local | Build and search a project-local lexical memory index; Ollama embeddings are provided separately by `/knowledge --embeddings` | `/semantic-memory search "auth token rotation"` |
|
|
52
|
+
| `/context-pack` (`/ctx-pack`, `/project-manifest`) | local | Scan repo architecture, remember decisions/constraints, compress project context under `.ur/` | `/context-pack remember --type decision --text "we use fastify"` |
|
|
53
|
+
| `/wiki generate\|map\|install-hook\|status` (`/repo-wiki`) | local | Living repo wiki + prompt-injected repo map; post-merge hook keeps both fresh | `/wiki generate` |
|
|
54
|
+
| `/knowledge` (`/kb`) | local | Curated knowledge base with provenance: add/remove/build/search/list/prune/status (`--embeddings`) | `/knowledge add src/auth/jwt.ts --note "token flow"` then `/knowledge search "refresh token"` |
|
|
55
|
+
| `/add-dir <path>` | jsx | Add another working directory | `/add-dir ../shared-lib` |
|
|
56
|
+
| `/init` | prompt | Analyze the codebase and generate the UR.md project memory file | `/init` |
|
|
57
|
+
|
|
58
|
+
## 3. Models & providers
|
|
59
|
+
|
|
60
|
+
| Command | Type | What it does | Example |
|
|
61
|
+
|---|---|---|---|
|
|
62
|
+
| `/model [model]` | jsx | Pick the session model | `/model qwen2.5-coder:7b` |
|
|
63
|
+
| `/provider [provider]` | jsx | Pick/inspect the model provider | `/provider ollama` |
|
|
64
|
+
| `/connect [status\|provider\|logout p]` | local | Connect a provider account or store an API key | `/connect openrouter --key sk-or-…` |
|
|
65
|
+
| `/model-doctor [model]` (`/model-capabilities`) | local | Probe local Ollama models for agent capabilities (tool calls, context, speed) | `/model-doctor llama3.3` |
|
|
66
|
+
| `/model-route <task>` (`/model-pick`) | local | Recommend best model for a task from cheap/strong/default pools | `/model-route "large refactor across 40 files"` |
|
|
67
|
+
| `/local-first` (`/offline-readiness`, `/local`) | local | Report readiness for no-cloud/offline/lab environments | `/local-first --json` |
|
|
68
|
+
| `/effort [low\|medium\|high\|max\|auto]` | jsx | Set model effort level | `/effort high` |
|
|
69
|
+
| `/fast [on\|off]` | jsx, unavailable | The command explains that this external-provider build has no hosted fast serving tier | `/fast` |
|
|
70
|
+
| `/advisor [<model>\|off]` | conditional | Hidden unless first-party advisor beta support and its runtime feature configuration are both enabled | — |
|
|
71
|
+
| `/escalate plan\|run\|oracle\|policy "<task>"` | local | Run on a fast model, auto-escalate hard steps to an oracle model | `/escalate run "prove this lock-free queue is correct" --oracle gpt-5.5` |
|
|
72
|
+
| `/route <task>` (`/intent`) | local | Classify a task → recommend subagent + collaboration pattern | `/route "find why login 500s"` |
|
|
73
|
+
| `/login` / `/logout` | jsx | UR account sign-in/out (hidden for 3P-service users) | `/login` |
|
|
74
|
+
| `/upgrade` | jsx | Upgrade plan for higher limits | `/upgrade` |
|
|
75
|
+
| `/extra-usage` | jsx | Configure extra usage past plan limits | `/extra-usage` |
|
|
76
|
+
| `/rate-limit-options` | jsx | Options shown when rate-limited | `/rate-limit-options` |
|
|
77
|
+
| `/usage` | jsx | Show plan usage limits | `/usage` |
|
|
78
|
+
| `/cost` | local | Total cost + duration of the session | `/cost` |
|
|
79
|
+
| `/stats` | jsx | Usage statistics and activity | `/stats` |
|
|
80
|
+
| `/insights` | prompt | Generate a report analyzing your UR sessions | `/insights` |
|
|
81
|
+
|
|
82
|
+
## 4. Agents & multi-agent
|
|
83
|
+
|
|
84
|
+
| Command | Type | What it does | Example |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| `/agents` | jsx | Manage agent (subagent) configurations | `/agents` |
|
|
87
|
+
| `/skills` | jsx | Browse installed skills and their source/trust metadata | `/skills` |
|
|
88
|
+
| `/agent-inspect` (`/inspect-agents`) | local | Per-subagent timeline: spawns, prompts, results, verdicts, tools, tokens | `/agent-inspect --file transcript.jsonl` |
|
|
89
|
+
| `/agent-task status\|diff\|pr` (`/task-pr`) | local | Task state, git diff status, PR handoff (`--create --draft --base`) | `/agent-task pr --create --base main` |
|
|
90
|
+
| `/agent-templates [list\|install]` | local | Install reusable project agent templates | `/agent-templates install reviewer` |
|
|
91
|
+
| `/agent-features [init]` (`/agent-roadmap`) | local | Show/initialize agent feature expansion scaffolds | `/agent-features --json` |
|
|
92
|
+
| `/agent-trends` (`/trends`) | local | UR coverage of current agent-tech trends | `/agent-trends` |
|
|
93
|
+
| `/bg run\|fanout\|list\|status\|logs\|attach\|steer\|kill` (`/background-agent`) | local | Detached local background agents with bounded live steering; PR creation requires an isolated worktree | `/bg steer bg_123 --message "run the parser tests"` |
|
|
94
|
+
| `/crew create\|plan\|add\|run\|…` (`/crews`) | local | Lead agent splits a goal into a shared task board; workers claim and run tasks | `/crew create cleanup --goal "remove dead code" --workers 3 --worktrees` |
|
|
95
|
+
| `/arena "<task>"` (`/best-of`) | local | N agents attempt the same task in isolated worktrees; judge picks (optionally applies) the winner | `/arena "optimize image pipeline" --agents 3 --apply` |
|
|
96
|
+
| `/pattern [list\|show\|run\|install]` (`/patterns`) | local | Multi-agent collaboration patterns: PEER, DOE, concurrent, handoff, debate, parallel | `/pattern run debate "should we adopt tRPC?" --execute` |
|
|
97
|
+
| `/goal add\|list\|resume\|…` (`/goals`) | local | Long-horizon objectives persisting across sessions | `/goal add v2-launch --objective "ship v2" --workflow release` |
|
|
98
|
+
| `/task start\|run\|pr\|list\|status` | local | Worktree-per-task sessions with PR handoff | `/task start rate-limiter --worktree` |
|
|
99
|
+
| `/worktree list\|status\|clean` (`/worktrees`) | local | Manage agent worktrees | `/worktree clean` |
|
|
100
|
+
| `/role-mode list\|show\|install` (`/roles`) | local | Built-in role modes (Architect, Code, Debug, Ask) installed as scoped agents | `/role-mode install architect` |
|
|
101
|
+
| `/mode [code\|research\|debug\|browser\|image\|video\|data]` | local | Switch working mode | `/mode research` |
|
|
102
|
+
|
|
103
|
+
## 5. Automation, workflows & specs
|
|
104
|
+
|
|
105
|
+
| Command | Type | What it does | Example |
|
|
106
|
+
|---|---|---|---|
|
|
107
|
+
| `/workflow init\|list\|show\|validate\|graph\|plan\|run\|approve\|next\|done\|reset` (`/wf`) | local | Declarative agent workflows with dependency, approval, and verification gates | `/workflow approve release publish` |
|
|
108
|
+
| `/agent-ci init\|validate\|workflow\|run` | local | Policy-gated agents in isolated CI worktrees with bounded patch artifacts | `/agent-ci init` |
|
|
109
|
+
| `/automation list\|create\|show\|run\|run-due\|enable\|disable\|delete\|install\|uninstall\|status\|daemon` (`/automations`) | local | Project-local scheduled automations and resident launchd/systemd/cron scheduler management | `/automation create nightly --schedule "0 3 * * *" --prompt "run tests and report"` |
|
|
110
|
+
| `/spec init\|generate\|approve\|next\|run\|verify\|…` (`/specs`) | local | Spec-driven development: requirements → design → tasks in `.ur/specs`, executed task-by-task with proof gates | `/spec init checkout --goal "one-click checkout"` |
|
|
111
|
+
| `/trigger parse\|run --file payload.json` (`/mention`) | local | Parse GitHub/Slack webhook payload → optionally launch a headless run | `/trigger run --file payload.json --source github --keyword /ur` |
|
|
112
|
+
| `/cloud run\|list\|sync\|environments\|show\|logs\|steer\|cancel\|apply` | local | Detached tasks: verified local best-of-N, or managed candidates selected only from PASS results with safe review branches | `/cloud run "speed up parser" --attempts 3` |
|
|
113
|
+
| `/recipe init\|list\|run` (`/recipes`) | local | Structured-output playbooks: child session must return schema-valid JSON (one repair round) | `/recipe run triage "login 500s"` |
|
|
114
|
+
| `/exec [prompts...]` | local | Non-interactive prompt runs with deterministic planning, a live task board, bounded parallel agents, strict verification, and optional per-prompt worktrees; `--no-*` flags disable each orchestration layer | `/exec "fix lint errors" "update snapshots" --concurrency 2` |
|
|
115
|
+
| `/ci-loop` (`/heal`) | local | Run build/test command in an explicit cwd, fix failures, rerun until green or prove cannot-fix | `/ci-loop --command "bun test" --cwd ./packages/app --max-attempts 3` |
|
|
116
|
+
| `/test-first [run\|detect\|install]` (`/quality-loop`, `/tf-loop`) | local | Detect stack, run compile/test/lint loops, install edit-time verify gates | `/test-first run --max-attempts 3` |
|
|
117
|
+
| `/eval init\|list\|validate\|run\|report\|compare\|route\|gate\|dashboard\|runs\|builtin\|leaderboard\|bench` (`/evals`) | local | Isolated evals, trajectory grading, reliability reports, benchmark adapters, and CI gates | `/eval run my-suite --model llama3.3 --repeat 3` |
|
|
118
|
+
| `/sdk info\|init` (`/embed`) | local | Show headless/programmatic usage; scaffold TS/Python SDK examples | `/sdk init` |
|
|
119
|
+
| `/toolsmith <name> <python\|bash\|node\|go\|rust>` | local | Scaffold a local helper tool under `.ur/tools`, run via UR with approval | `/toolsmith csv-differ python` |
|
|
120
|
+
| `/skill list\|show\|run\|approve\|reset\|init\|keygen\|verify\|sign` | local | Execute tool-bounded skills, resume explicit approval gates, and manage Ed25519 provenance/trust | `/skill verify deploy-checklist --require-trusted` |
|
|
121
|
+
| `/create-skill <name> [: description]` (`/new-skill`) | local | Scaffold a new SKILL.md | `/create-skill release-notes : draft release notes --project` |
|
|
122
|
+
|
|
123
|
+
## 6. Code quality & verification
|
|
124
|
+
|
|
125
|
+
| Command | Type | What it does | Example |
|
|
126
|
+
|---|---|---|---|
|
|
127
|
+
| `/review` | prompt | Review a pull request | `/review 128` |
|
|
128
|
+
| `/ultrareview` | prompt | Deep multi-pass review | `/ultrareview` |
|
|
129
|
+
| `/verify` | prompt | Spawn the verification subagent on current state | `/verify` |
|
|
130
|
+
| `/diff` | jsx | View uncommitted changes and per-turn diffs | `/diff` |
|
|
131
|
+
| `/pr-comments` | prompt | Fetch comments from a GitHub PR | `/pr-comments` |
|
|
132
|
+
| `/repo-edit index\|search\|rename\|move\|organize-imports\|unused\|callers` (`/reliable-edit`) | local | Indexed search and compiler-aware edits; rename/move/import organization preview by default, mutate only through `apply rename …` or explicit `--apply`, and return nonzero after rollback on a failed apply | `/repo-edit rename getUser --to fetchUser --check "bun test"` |
|
|
133
|
+
| `/code-index build\|watch\|search\|status\|repo` (`/codeindex`) | local | Local semantic code index (embeddings via Ollama) | `/code-index search "retry with backoff"` |
|
|
134
|
+
| `/guardrails list\|init\|validate\|check` (`/guardrail`) | local | Standalone evaluator for declarative regex/contains/PII/LLM rules and tripwires; not a universal tool-output enforcement hook | `/guardrails check "email me at x@y.z" --phase output` |
|
|
135
|
+
| `/claim-ledger add\|list\|validate` (`/claims`) | local | Atomic, fail-closed claim-to-source ledger; `validate` checks record structure, not whether external sources still exist | `/claim-ledger add --claim "p99 < 200ms" --source file:benchmarks/latest.json` |
|
|
136
|
+
| `/selftest [run\|list]` (`/drills`) | local | End-to-end drills that spawn the shipped binary against real directories, plus the prompts for drills needing a live model; exits non-zero on failure | `/selftest run` |
|
|
137
|
+
| `/memory-integrity [verify\|record\|quarantine]` (`/mem-verify`) | local | Tamper-evidence for the file-backed memory stores: detects files modified, deleted outside UR, or dropped in by something else; `quarantine` moves suspect files aside | `/memory-integrity verify --store all` |
|
|
138
|
+
| `/sources [--check "<span>"] [--flagged]` | local | Every untrusted block that entered this session (web fetch, MCP result) with source, size, digest and injection signals; `--check` traces a span back to the source containing it, or reports it was not grounded in anything fetched | `/sources --check "the release gate runs bun test"` |
|
|
139
|
+
| `/grade-trajectory --file <t.jsonl>` (`/grade`) | local | Grade a run on how it worked — unverified changes, edits to unread files, destructive commands, loops on identical failures — and exit non-zero below `--min-score` | `/grade-trajectory --file run.jsonl --min-score 70` |
|
|
140
|
+
| `/artifacts list\|show\|serve\|add\|capture-diff\|capture-tests\|approve\|reject\|feedback\|delete` (`/artifact`) | local | Reviewable deliverables under `.ur/artifacts` with approval flow + local web viewer | `/artifacts capture-diff --title "auth refactor"` then `/artifacts serve --port 7777` |
|
|
141
|
+
| `/audit export\|verify` | local | Hash-chained audit trail (JSONL/CSV) with tamper verification | `/audit export --format csv --out audit.csv` |
|
|
142
|
+
| `/evidence [n]` | local | Stability evidence/action ledger | `/evidence 20` |
|
|
143
|
+
| `/actions [n]` | local | Recent stability action log | `/actions 10` |
|
|
144
|
+
| `/learn run\|stats\|apply\|playbooks …` | local | Mine proof-backed outcomes, review learned playbook candidates, and run only explicitly approved workflows | `/learn playbooks mine --min-runs 3` |
|
|
145
|
+
| `/commit` | prompt (internal) | Create a git commit | `/commit` |
|
|
146
|
+
| `/commit-push-pr` | prompt (internal) | Commit, push, open PR | `/commit-push-pr` |
|
|
147
|
+
|
|
148
|
+
## 7. Security suite
|
|
149
|
+
|
|
150
|
+
| Command | Type | What it does | Example |
|
|
151
|
+
|---|---|---|---|
|
|
152
|
+
| `/security scan\|code\|secrets\|threat-model\|vuln\|scope\|status\|rules\|report` | local | Umbrella security toolkit | `/security secrets` |
|
|
153
|
+
| `/security-review` (`/secure-review`, `/sec-review`) | prompt | Audit code in an isolated worktree, fix low-risk issues, and report findings without publishing | `/security-review` |
|
|
154
|
+
| `/scope` | local | Define/approve an authorized security test scope | `/scope set local` |
|
|
155
|
+
| `/threat-model` | local | STRIDE/ATT&CK threat model | `/threat-model` |
|
|
156
|
+
| `/vuln` | local | Dependency vulnerability audit (OSV) | `/vuln` |
|
|
157
|
+
| `/ir` | local | Incident-response collection (read-only) | `/ir` |
|
|
158
|
+
| `/compliance` | local | OWASP / SSDF / CIS compliance mapping | `/compliance` |
|
|
159
|
+
| `/playbook` | local | Show/run a defensive security playbook | `/playbook` |
|
|
160
|
+
| `/harden` | local | System hardening checks (read-only) | `/harden` |
|
|
161
|
+
| `/kali` | local | Detect installed Kali/security tools (read-only) | `/kali` |
|
|
162
|
+
| `/lab` | local | Create a safe local security lab | `/lab` |
|
|
163
|
+
| `/safety status\|init\|check` (`/safety-policy`) | local | Project shell-safety policy (`.ur/safety-policy.json`); evaluate risky commands | `/safety check --command "rm -rf build"` |
|
|
164
|
+
| `/sandbox [status\|check\|init\|eval\|exclude]` | jsx | Interactive sandbox settings plus text status, dependency, policy, approval-level, and exclusion actions | `/sandbox eval "curl https://example.com"` |
|
|
165
|
+
| `/permissions` (`/allowed-tools`) | jsx | Manage allow/deny tool permission rules | `/permissions` |
|
|
166
|
+
| `/permission-profile [list\|use <name>\|clear]` (`/profile`) | local | List, switch, or clear the active named permission profile | `/permission-profile use reviewing` |
|
|
167
|
+
| `/privacy-settings` | jsx | View/update privacy settings | `/privacy-settings` |
|
|
168
|
+
|
|
169
|
+
## 8. Research & analysis
|
|
170
|
+
|
|
171
|
+
| Command | Type | What it does | Example |
|
|
172
|
+
|---|---|---|---|
|
|
173
|
+
| `/research [note]` | local | Add/list research notes | `/research vector DBs comparison started` |
|
|
174
|
+
| `/paper [title or path]` | local | Add/list research papers | `/paper attention-is-all-you-need.pdf` |
|
|
175
|
+
| `/cite [citation]` | local | Add/list citations | `/cite Vaswani et al. 2017` |
|
|
176
|
+
| `/graph [entity] [text]` | local | Typed research collections for papers/claims/methods/datasets; no relation edges are inferred | `/graph claim "RoPE beats ALiBi at 128k"` |
|
|
177
|
+
| `/read <file>` | local | Read a text-like file into context | `/read notes/design.md` |
|
|
178
|
+
| `/summarize <file>` | local | Read a file for summarization | `/summarize RFC.md` |
|
|
179
|
+
| `/analyze <file>` | local | Read a file for analysis | `/analyze profiler-output.json` |
|
|
180
|
+
| `/search <query>` | local | Search workspace files for text | `/search "TODO(auth)"` |
|
|
181
|
+
| `/index` | local | Build a workspace file index (`.ur/index`) | `/index` |
|
|
182
|
+
| `/convert <file> <target>` | local | Report available conversion dependencies and the requested conversion; it does not execute the converter itself | `/convert report.md pdf` |
|
|
183
|
+
| `/pdf <file> [pages] [task]` | local | Deps-aware PDF text/metadata extraction (pdftotext) | `/pdf spec.pdf 2-7` |
|
|
184
|
+
| `/image <file> [task]` | local | Show file metadata and run bounded Tesseract OCR when installed; use an attached image/vision model for visual reasoning | `/image screenshot.png` |
|
|
185
|
+
| `/video <file\|url> [task]` | local | Show local `ffprobe` metadata or remote dependency advice; it does not analyze frames | `/video demo.mp4` |
|
|
186
|
+
| `/youtube <url> [task]` | local | Fetch bounded YouTube metadata with `yt-dlp`; it does not fetch or summarize a transcript | `/youtube https://youtu.be/…` |
|
|
187
|
+
|
|
188
|
+
## 9. Integrations
|
|
189
|
+
|
|
190
|
+
| Command | Type | What it does | Example |
|
|
191
|
+
|---|---|---|---|
|
|
192
|
+
| `/mcp [enable\|disable [server]]` | jsx | Manage MCP servers interactively | `/mcp` |
|
|
193
|
+
| `/plugin` (`/plugins`, `/marketplace`) | jsx | Manage installed and marketplace plugins | `/plugin` |
|
|
194
|
+
| `/reload-plugins` | local | Activate pending plugin changes in the current session | `/reload-plugins` |
|
|
195
|
+
| `/ide open\|status\|doctor\|config <editor>\|diff …` | jsx | IDE integrations, inline diff bundles | `/ide status` |
|
|
196
|
+
| `/acp serve\|stdio\|stop\|status` | local | Agent Client Protocol stdio agent and separate UR HTTP JSON-RPC server | `/acp serve --port 9100` |
|
|
197
|
+
| `/a2a-card [base-url]` (`/agent-card`) | local | Print UR Card metadata for A2A discovery | `/a2a-card https://myhost:8765` |
|
|
198
|
+
| `/chrome` | jsx | UR-in-Chrome (browser extension) settings | `/chrome` |
|
|
199
|
+
| `/browser <url\|task>` | local | Dependency/advice command that reports Playwright or Chrome availability; it does not itself drive the page | `/browser https://localhost:3000` |
|
|
200
|
+
| `/browser-qa list\|validate\|run` | local | Browser QA replay fixtures | `/browser-qa run login-flow` |
|
|
201
|
+
| `/desktop-qa init\|list\|validate\|run\|schema\|doctor` (`/qa-desktop`) | local | Bounded Electron fixtures with teardown, masked screenshots, and raw recordings only when selector masking is off | `/desktop-qa run smoke.json` |
|
|
202
|
+
| `/install-slack-app` | local | Open the UR Slack marketplace installation page; the user completes installation in the browser | `/install-slack-app` |
|
|
203
|
+
| `/remote-control [name]` (`/rc`) | conditional jsx | Connect terminal for remote-control (mobile/web) sessions; `BRIDGE_MODE` build only, absent from the standard npm bundle | `/remote-control` |
|
|
204
|
+
| `/remote-env` | conditional jsx | Default remote environment for teleport sessions; requires a UR subscriber, allowed remote-session policy, and network access | `/remote-env` |
|
|
205
|
+
| `/web-setup` | conditional jsx | Set up UR on the web (GitHub account link); `CCR_REMOTE_SETUP` build only, absent from the standard npm bundle | `/web-setup` |
|
|
206
|
+
| `/devcontainer status\|init\|exec` (`/exec-target`) | local | Reproducible container execution target for commands and ci-loop | `/devcontainer exec -- npm test` |
|
|
207
|
+
| `/connect` | local | (see Models & providers) | — |
|
|
208
|
+
|
|
209
|
+
## 10. Project & environment info
|
|
210
|
+
|
|
211
|
+
| Command | Type | What it does | Example |
|
|
212
|
+
|---|---|---|---|
|
|
213
|
+
| `/project` | local | Project summary (workspace + DNA) | `/project` |
|
|
214
|
+
| `/workspace init\|add\|task\|show\|validate\|run\|status\|verify\|pr-plan\|rollback-plan` | local | Coordinate dependency-aware tasks across isolated worktrees in multiple repositories | `/workspace run release --max-concurrency 4` |
|
|
215
|
+
| `/dna` | local | Detect language/package-manager/build/test/lint, save to `.ur` | `/dna` |
|
|
216
|
+
| `/os` | local | OS, shell, runtime, detected tools | `/os` |
|
|
217
|
+
| `/env` | internal | Environment dump (internal builds) | — |
|
|
218
|
+
| `/ur-init` | local | Generate the `.ur` asset folder (docs, superpowers, brainstorming, memory, prompts) | `/ur-init` |
|
|
219
|
+
| `/ur-doctor` | local | Full health check: OS, tools, Ollama, `.ur`, MCP, Playwright | `/ur-doctor` |
|
|
220
|
+
| `/doctor` | jsx | Diagnose installation and settings | `/doctor` |
|
|
221
|
+
| `/status` | jsx | Version, model, account, connectivity, tool statuses | `/status` |
|
|
222
|
+
| `/release-notes` | local | View changelog | `/release-notes` |
|
|
223
|
+
|
|
224
|
+
## 11. UI, terminal & input
|
|
225
|
+
|
|
226
|
+
| Command | Type | What it does | Example |
|
|
227
|
+
|---|---|---|---|
|
|
228
|
+
| `/config` (`/settings`) | jsx | Open the config panel | `/config` |
|
|
229
|
+
| `/theme` | jsx | Change color theme | `/theme` |
|
|
230
|
+
| `/color <color\|default>` | jsx | Prompt-bar color for this session | `/color magenta` |
|
|
231
|
+
| `/vim` | local | Toggle Vim editing mode | `/vim` |
|
|
232
|
+
| `/keybindings` | local | Open/create the keybindings file | `/keybindings` |
|
|
233
|
+
| `/terminal-setup` | jsx | Configure terminal (Shift+Enter etc.) | `/terminal-setup` |
|
|
234
|
+
| `/statusline` | prompt | Configure the status line | `/statusline show model and git branch` |
|
|
235
|
+
| `/output-style` | jsx | Deprecated → use `/config` | — |
|
|
236
|
+
| `/hooks` | jsx | View hook configurations | `/hooks` |
|
|
237
|
+
| `/help` | jsx | Help and available commands | `/help` |
|
|
238
|
+
| `/feedback [report]` (`/bug`) | jsx | Submit feedback | `/feedback` |
|
|
239
|
+
| `/plan [open\|description]` | jsx | Enter plan mode / view session plan | `/plan add caching layer` |
|
|
240
|
+
| `/passes` | conditional jsx | Passes UI when cached account eligibility allows it | `/passes` |
|
|
241
|
+
| `/tasks` (`/bashes`) | jsx | List/manage background tasks | `/tasks` |
|
|
242
|
+
| `/think-back` / `/thinkback-play` | conditional jsx/local | Year-in-review animation when its runtime feature configuration is enabled; `thinkback-play` is hidden and called by the flow | `/think-back` |
|
|
243
|
+
| `/voice` | local | Toggle shipped voice input; availability still requires UR OAuth, microphone access, an audio backend, and the runtime kill-switch | `/voice` |
|
|
244
|
+
| `/speak <text>` (`/say`) | local | Read text aloud with the system speech synthesiser (`--voice`, `--rate`) | `/speak build finished` |
|
|
245
|
+
| `/computer screenshot\|click\|type` (`/desktop-control`) | local | Desktop control; state-changing actions require `--yes` | `/computer screenshot ~/shot.png` |
|
|
246
|
+
| `/heapdump` | local | Dump JS heap to ~/Desktop (debugging) | `/heapdump` |
|
|
247
|
+
| `/trace` | local | Inspect recent turns: roles, tool calls | `/trace` |
|
|
248
|
+
|
|
249
|
+
## 12. Stability & reliability
|
|
250
|
+
|
|
251
|
+
| Command | Type | What it does | Example |
|
|
252
|
+
|---|---|---|---|
|
|
253
|
+
| `/stability metrics\|firewall\|why <error>\|policy\|evidence\|actions\|cooldown` | local | Inspect the tool-action ledger, calculate stability flags, and rank likely causes; this command reports policy diagnostics but does not control the core query loop | `/stability why "ECONNRESET"` |
|
|
254
|
+
| `/actions`, `/evidence` | local | (see §6) | — |
|
|
255
|
+
|
|
256
|
+
## 13. Bundled skills (standard invocable prompts)
|
|
257
|
+
|
|
258
|
+
Registered in `src/skills/bundled/` at startup:
|
|
259
|
+
|
|
260
|
+
| Skill | What it does | Example |
|
|
261
|
+
|---|---|---|
|
|
262
|
+
| `/batch` | Research + plan a large change, then execute across 5–30 parallel local worktrees; asks before final integration tests and does not publish | `/batch migrate all API handlers to zod validation` |
|
|
263
|
+
| `/debug` | Enable/read the current session debug log and diagnose runtime issues | `/debug provider request stalled` |
|
|
264
|
+
| `/debug-v2` (`/debug2`, `/bugfix`) | Reproduce, root-cause, and fix a bug in an isolated worktree; ask before the full suite and keep publishing explicit | `/debug-v2 login 500s when password has emoji` |
|
|
265
|
+
| `/refactor` | Safe, test-backed refactor in a worktree; ask before the full suite and keep publishing explicit | `/refactor extract retry logic into a helper` |
|
|
266
|
+
| `/benchmark` (`/bench`, `/perf`) | Add/run benchmarks in a worktree; ask before the full sequence and keep publishing explicit | `/benchmark the JSON parser hot path` |
|
|
267
|
+
| `/dockerize` | Add Dockerfile, compose, health checks, and .dockerignore in a worktree; keep publishing explicit | `/dockerize` |
|
|
268
|
+
| `/security-review` | Audit code in a worktree, fix low-risk issues, and report findings without publishing | `/security-review` |
|
|
269
|
+
| `/latex-paper` (`/latex`) | Generate/compile a LaTeX paper with a build script; ask before final verification and keep publishing explicit | `/latex-paper systems paper skeleton` |
|
|
270
|
+
| `/paper-implementation` (`/implement-paper`) | Implement an algorithm/system from a paper or URL with tests and notes; keep publishing explicit | `/paper-implementation https://arxiv.org/abs/… ` |
|
|
271
|
+
| `/remember <text>` | The standard build's local command persists an explicit note; no-argument use lists project notes | `/remember keep release commits signed` |
|
|
272
|
+
| `/simplify` | Review changed code for reuse/quality/efficiency, apply fixes | `/simplify` |
|
|
273
|
+
| `/update-config` | Configure settings.json/hooks via natural language | `/update-config allow npm commands without prompting` |
|
|
274
|
+
| `/ur-in-chrome` | Chrome-extension driving skill (auto-enabled when configured) | — |
|
|
275
|
+
| `/verify` | Verify a change end-to-end using the verification prompt | `/verify` |
|
|
276
|
+
|
|
277
|
+
Defined skill modules that are not standard invocable commands:
|
|
278
|
+
`/loop` (`AGENT_TRIGGERS`), `/schedule` (`AGENT_TRIGGERS_REMOTE`), `/ur-api`
|
|
279
|
+
(`BUILDING_UR_APPS`), `/skillify` and the auto-memory review variant of `/remember`
|
|
280
|
+
(internal), `/keybindings-help` (`userInvocable: false`), `/lorem-ipsum` and `/stuck`
|
|
281
|
+
(internal), and `/dream`, `/hunter`, `/run` (their respective build gates).
|
|
282
|
+
|
|
283
|
+
## 14. Internal-only commands (`USER_TYPE=ant`, stripped from external builds)
|
|
284
|
+
|
|
285
|
+
`/backfill-sessions`, `/break-cache`, `/bughunter`, `/commit`, `/commit-push-pr`, `/ctx_viz`,
|
|
286
|
+
`/good-ur`, `/issue`, `/init-verifiers`, `/force-snip`, `/mock-limits`, `/bridge-kick`,
|
|
287
|
+
`/version`, `/ultraplan`, `/subscribe-pr`, `/reset-limits`, `/onboarding`, `/share`,
|
|
288
|
+
`/summary`, `/teleport`, `/ant-trace`, `/perf-issue`, `/env`, `/oauth-refresh`,
|
|
289
|
+
`/debug-tool-call`, `/autofix-pr`, `/tag`, `/files`, `/skillify`.
|
|
290
|
+
|
|
291
|
+
## 15. Feature-gated commands
|
|
292
|
+
|
|
293
|
+
Compiled in only when the corresponding `feature(...)` flag is on:
|
|
294
|
+
`/proactive`, `/brief`, `/assistant` (KAIROS) · `/remote-control` (BRIDGE_MODE) ·
|
|
295
|
+
`/voice` (VOICE_MODE, enabled in the standard bundle) · `/workflows` (WORKFLOW_SCRIPTS) ·
|
|
296
|
+
`/web-setup` (CCR_REMOTE_SETUP) ·
|
|
297
|
+
`/peers` (UDS_INBOX) · `/fork` (FORK_SUBAGENT) · `/buddy` (BUDDY) · `/torch` (TORCH) ·
|
|
298
|
+
`/loop` (AGENT_TRIGGERS) · `/schedule` (AGENT_TRIGGERS_REMOTE) · `/ur-api`
|
|
299
|
+
(BUILDING_UR_APPS). `/session` requires remote mode and `/think-back` requires its
|
|
300
|
+
runtime feature configuration; neither is in the default external registry.
|
|
301
|
+
|
|
302
|
+
## 16. Custom command sources
|
|
303
|
+
|
|
304
|
+
Beyond built-ins, slash commands are loaded from (see doc 08 for formats):
|
|
305
|
+
- **Skills**: native `.ur/skills/<name>/SKILL.md` / `~/.ur/skills/` and
|
|
306
|
+
cross-client `.agents/skills/<name>/SKILL.md` / `~/.agents/skills/`
|
|
307
|
+
- **Plugins**: commands and skills contributed by installed plugins (`(plugin-name)` prefix in help)
|
|
308
|
+
- **Workflows**: each workflow in `.ur/workflows/` becomes a command (feature-gated)
|
|
309
|
+
- **MCP prompts**: MCP servers exposing prompts appear as commands (`MCP_SKILLS` gate for model-invocable)
|
|
310
|
+
|
|
311
|
+
`src/commands.ts` resolves the seven static sources in this priority:
|
|
312
|
+
bundled skills → built-in plugin skills → user/project skill directories →
|
|
313
|
+
workflow commands → plugin commands → plugin skills → built-ins. Dynamic
|
|
314
|
+
skills are inserted immediately before built-ins. The first source to claim a
|
|
315
|
+
canonical token wins; later conflicting commands are omitted and only
|
|
316
|
+
conflicting aliases are removed from otherwise distinct commands. MCP prompts
|
|
317
|
+
are held in `AppState.mcp.commands` and filtered separately; they are not an
|
|
318
|
+
eighth entry in `loadAllCommands()`.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# 04 — Tool Reference (model-invocable tools)
|
|
2
|
+
|
|
3
|
+
Source of truth: `src/tools.ts:getAllBaseTools()` and each `src/tools/<Name>Tool/`.
|
|
4
|
+
Tools are what the model calls during a turn. The pool is assembled per-session
|
|
5
|
+
(`assembleToolPool`): built-ins + MCP tools, deny-rule filtered, deduped, sorted for
|
|
6
|
+
prompt-cache stability. `--tools`, `--allowedTools`, `--disallowedTools`, and
|
|
7
|
+
`/permissions` rules shape this pool.
|
|
8
|
+
|
|
9
|
+
"Example" below shows a natural-language request that causes the agent to use the tool —
|
|
10
|
+
users don't call tools directly.
|
|
11
|
+
|
|
12
|
+
## Core file & search tools
|
|
13
|
+
|
|
14
|
+
| Tool | Purpose | Key inputs | Example request |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| `Read` | Read a file (text, images, notebooks) | `file_path`, `offset`, `limit` | "Open src/auth.ts and explain the login flow" |
|
|
17
|
+
| `Write` | Create/overwrite a file | `file_path`, `content` | "Create a README for this package" |
|
|
18
|
+
| `Edit` | Exact string replacement in a file | `file_path`, `old_string`, `new_string`, `replace_all` | "Rename this variable in that file" |
|
|
19
|
+
| `NotebookEdit` | Replace/insert/delete Jupyter cells | `notebook_path`, `cell_id`, `new_source` | "Fix the broken cell in analysis.ipynb" |
|
|
20
|
+
| `Glob` | Fast filename pattern matching | `pattern`, `path` | "Find all *.test.ts files" |
|
|
21
|
+
| `Grep` | Regex content search (ripgrep-backed) | `pattern`, `path`, `glob`, output modes | "Where is refreshToken referenced?" |
|
|
22
|
+
| `CodeSearch` | Semantic code search over the local embedding index — auto-enabled when a built index exists (`ur code-index build`); `UR_CODE_INDEX=off` disables | `query` | "Find code that debounces user input" |
|
|
23
|
+
| `Bash` | Run shell commands; supports background tasks, sandboxing, safety checks (`src/tools/BashTool/bashSecurity.ts`); commands with unterminated quotes are rejected pre-execution with an actionable diagnostic (errorCode 11, heredoc guidance) | `command`, `timeout`, `run_in_background`, sandbox overrides | "Run the test suite" |
|
|
24
|
+
| `PowerShell` | Windows PowerShell variant (Windows plus `UR_CODE_USE_POWERSHELL_TOOL=1` in the external build) | same shape as Bash | — |
|
|
25
|
+
|
|
26
|
+
## Web & network tools
|
|
27
|
+
|
|
28
|
+
| Tool | Purpose | Key inputs | Example request |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| `WebFetch` | Fetch a public HTTP(S) URL → markdown → analyze with a small model; DNS and every redirect are checked against private/reserved addresses | `url`, `prompt` | "Summarize this blog post: https://…" |
|
|
31
|
+
| `Computer` | Desktop control: screenshot (read-only), click, type. Clicks are bounds-checked against real screen geometry and state-changing actions always ask. macOS/Linux only | action-specific coordinates, text, or output path | "Take a screenshot of the desktop" |
|
|
32
|
+
| `WebSearch` | Provider-side web search. The current runtime gate exposes it for every non-Ollama provider (`getAPIProvider() === 'foundry'`) and hides it on the default Ollama backend; actual server-tool support still depends on the selected provider/model | `query`, optional `allowed_domains` or `blocked_domains` (mutually exclusive) | "Search for the fastify v5 migration guide" |
|
|
33
|
+
| `Api` | Direct public HTTP(S) calls with JSON extraction; private targets, unsafe redirects, oversized responses, GET bodies, and silent sensitive-header sends are rejected/confirmed | `url`, `method`, `headers`, `body`, `timeout` (≤300s), `extract` (dotted path) | "Call GET https://api.github.com/repos/x/y and give me .stargazers_count" |
|
|
34
|
+
| `Browser` | Guarded public-URL fetch plus a persistent Playwright session for goto/click/type/screenshot/evaluate. Requires `UR_BROWSER_TOOL=1` or `WEB_BROWSER_TOOL=1`; `fetch` needs no browser process, while interactive actions require the externalized `playwright-core` dependency and an installed Chromium/Chrome executable | `url`, `action`, `selector`, `text`, `expression` | "Open the public staging UI, click Login, screenshot the result" |
|
|
35
|
+
|
|
36
|
+
## Dev-workflow tools
|
|
37
|
+
|
|
38
|
+
| Tool | Purpose | Key inputs | Example request |
|
|
39
|
+
|---|---|---|---|
|
|
40
|
+
| `GitHub` | GitHub operations without leaving the agent; PR/issue creation always enters the permission path and requires non-interactive title/body input | `action`: `pr_list`, `pr_view`, `pr_create`, `issue_list`, `issue_create`, `repo_view`, `search_code`; `repo`, `title`, `body`, `head`, `base`, `number`, `query`, `draft`, `limit` | "Open a draft PR for this branch against main" |
|
|
41
|
+
| `Docker` | Container operations | `action`: `ps`, `build`, `run`, `exec`, `logs`, `stop`, `rm`, `compose_up`, `compose_down`; `image`, `container`, `command`, `file`, `detach` | "Build the image and start compose" |
|
|
42
|
+
| `TestRunner` | Run project tests through the Bash permission/sandbox/hook path with auto-detected or explicit command | `command`, `pattern`, `timeout` (≤600s), `watch` | "Run only the auth tests" |
|
|
43
|
+
| `Database` | SQL against sqlite/postgres/mysql/duckdb; read-only mode is enforced by both classification and each database engine | `connection`, `database`, `query`, `readonly` (default true) | "How many rows are in users.db's sessions table?" |
|
|
44
|
+
| `LSP` | Language-server queries: goToDefinition, findReferences, hover, documentSymbol… (needs `ENABLE_LSP_TOOL=1`) | operation + position | "Find all references of parseConfig" |
|
|
45
|
+
|
|
46
|
+
## Planning, tasks & interaction
|
|
47
|
+
|
|
48
|
+
| Tool | Purpose | Example request |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| `TodoWrite` | Maintain the session todo list | (agent tracks multi-step work) |
|
|
51
|
+
| `TaskCreate` / `TaskGet` / `TaskUpdate` / `TaskList` | Structured task list v2 (dependencies, atomic claims/statuses/numeric ordering) — replaces TodoWrite when the todo-v2 runtime gate is enabled | "Track these five subtasks" |
|
|
52
|
+
| `EnterPlanMode` / `ExitPlanMode` | Enter/leave plan mode; plan approval flow | "Plan first, then implement" |
|
|
53
|
+
| `AskUserQuestion` | Multiple-choice questions to the user | (agent asks when blocked on a decision) |
|
|
54
|
+
| `TaskOutput` / `TaskStop` | Read output of / stop a background task | "Kill the dev server you started" |
|
|
55
|
+
| `EnterWorktree` / `ExitWorktree` | Move the session into/out of an isolated git worktree (worktree mode) | "Do this in a scratch worktree" |
|
|
56
|
+
| `SendUserMessage` | KAIROS/KAIROS_BRIEF build-only mid-turn brief; not present in the standard npm build | — |
|
|
57
|
+
|
|
58
|
+
## Multi-agent tools
|
|
59
|
+
|
|
60
|
+
The table below separates the ordinary Agent/Skill tools from coordination
|
|
61
|
+
tools that require an explicit runtime/build gate. Internal overlay modules
|
|
62
|
+
that export `null` are compile-time placeholders, are never added to the tool
|
|
63
|
+
pool, and are not supported user-facing tools.
|
|
64
|
+
|
|
65
|
+
| Tool | Purpose | Example request |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| `Agent` | Spawn a subagent (built-in types: `general-purpose`, `Explore`, `Plan`, `verification`, `statusline-setup`, `ur-code-guide`, plus user agents from `/agents` and `.ur/agents/`) | "Use a subagent to survey how errors are handled repo-wide" |
|
|
68
|
+
| `SendMessage` | Message another running agent/teammate; useful only while swarm mode is enabled | (agent coordination) |
|
|
69
|
+
| `TeamCreate` / `TeamDelete` | Create/remove agent teams (swarm mode, `isAgentSwarmsEnabled`) | "Spin up a team for this migration" |
|
|
70
|
+
| `Skill` | Invoke a skill programmatically (model-triggered skills) | "Use the dockerize skill" |
|
|
71
|
+
|
|
72
|
+
## Scheduling (nonstandard builds)
|
|
73
|
+
|
|
74
|
+
| Tool | Gate | Purpose |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `CronCreate` / `CronDelete` / `CronList` | AGENT_TRIGGERS | Local scheduled jobs (used by `/loop`, `/automation`) |
|
|
77
|
+
| `RemoteTrigger` | AGENT_TRIGGERS_REMOTE | Manage scheduled remote agents via API |
|
|
78
|
+
| `Sleep` | PROACTIVE/KAIROS overlay | The public-source overlay currently exports `null`; do not treat the environment name as a usable tool |
|
|
79
|
+
|
|
80
|
+
## MCP & discovery
|
|
81
|
+
|
|
82
|
+
| Tool | Purpose |
|
|
83
|
+
|---|---|
|
|
84
|
+
| `ListMcpResourcesTool` / `ReadMcpResourceTool` | List/read resources exposed by connected MCP servers |
|
|
85
|
+
| `mcp__<server>__<tool>` | Every connected MCP server's tools join the pool under this naming |
|
|
86
|
+
| `ToolSearch` | When the tool pool is large, less-used tools are deferred; this searches and loads their schemas on demand |
|
|
87
|
+
|
|
88
|
+
## Internal / special
|
|
89
|
+
|
|
90
|
+
| Tool | Gate | Purpose |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| `Config` | USER_TYPE=ant | Get/set UR settings programmatically |
|
|
93
|
+
| `REPL` | internal overlay | The public-source overlay currently exports `null`; `UR_CODE_REPL` alone cannot enable it |
|
|
94
|
+
| `StructuredOutput` | synthetic | Enforces structured output schemas in headless runs |
|
|
95
|
+
|
|
96
|
+
`ListPeers`, `Workflow`, `Monitor`, `PushNotification`, `SendUserFile`,
|
|
97
|
+
`SubscribePR`, `Tungsten`, `SuggestBackgroundPR`, `CtxInspect`,
|
|
98
|
+
`TerminalCapture`, `WebBrowser`, `Snip`, `overflow_test`, and
|
|
99
|
+
`VerifyPlanExecution` are internal overlay names only. Their public-source
|
|
100
|
+
modules are inert placeholders and they are intentionally excluded from the
|
|
101
|
+
supported tool reference rather than presented as partial implementations.
|
|
102
|
+
|
|
103
|
+
## Permission model interaction
|
|
104
|
+
|
|
105
|
+
Every tool call passes through the permission layer (`src/utils/permissions/`,
|
|
106
|
+
`src/hooks/useCanUseTool.tsx`):
|
|
107
|
+
1. Deny rules (`/permissions`, settings `permissions.deny`) — blanket-denied tools are
|
|
108
|
+
stripped from the pool before the model even sees them (`filterToolsByDenyRules`).
|
|
109
|
+
2. Allow rules auto-approve matching calls (e.g. `Bash(git:*)`).
|
|
110
|
+
3. Otherwise the user is prompted; `--dangerously-skip-permissions` bypasses (guarded by
|
|
111
|
+
org policy `skipDangerousModePermissionPrompt` / policyLimits).
|
|
112
|
+
4. Bash additionally runs command safety analysis (`bashSecurity.ts`, destructive-command
|
|
113
|
+
warnings, project safety policy from `/safety`) and optional OS sandboxing
|
|
114
|
+
(`src/utils/sandbox`, `/sandbox` command, `sandbox` settings).
|
|
115
|
+
|
|
116
|
+
File Edit/Write/NotebookEdit require the exact content snapshot the model read,
|
|
117
|
+
not only a modification timestamp. Full and ranged reads are compared at the
|
|
118
|
+
final write boundary, preventing same-timestamp external replacements from
|
|
119
|
+
being overwritten.
|