#SwarmUp rename: name inventory
Agent Ops becomes SwarmUp, with the domain swarmup.tech (AO-0195). This page lists every class of
old name in the engine repo, how often it occurs, and the final new name. The other AO-0195
tasks (code rename, migrations, repo rename, website) work from the name table.
Status: final. Dawid accepted every row of the name table on 2026-11-09 (AO-0198,
ID#01M703BENW97K8GEJ8E9DVD44S: "ok, go"). The Final column is the name each AO-0195 task uses.
Review found two AGENT_OPS_* desktop variables after the accept; row 11 maps them under the
accepted SWARMUP_* prefix.
#How the counts were made
- Tracked files on
claude/ao-0198(based69e2d49), withgit grep -P,package-lock.jsonleft out. - "Outside the store" leaves out
.agent-ops/(7,607 files of task history). The rename moves that folder; it does not rewrite past events. - Counts are files / hits. Code paths are examples, not the full list; rerun the grep to get it.
#Occurrence classes
#Product strings
| Pattern | Outside the store | With the store | Where |
|---|---|---|---|
Agent Ops |
54 / 140 | 81 / 174 | UI text, notifications, tray menu, installer, prompts, docs, README |
agent-ops |
111 / 408 | 472 / 1,168 | package names, skill name, paths, repo URLs, project name, storage keys |
AgentOps |
10 / 15 | 20 / 25 | installer file name AgentOps-Setup.exe, PowerShell type namespace in path.ps1 |
agentops |
1 / 1 | 1 / 1 | app id ai.dawid.agentops |
agentOps |
16 / 47 | - | preload bridge and package banner; breakdown below |
agentOps breaks down as follows:
window.agentOps: 13 files.packages/desktop/ui/src/api.ts:90-113,packages/desktop/ui/src/ui/voice.tsx:24,109, and 11 desktop UI tests that stub the bridge.(window as unknown as { agentOps: unknown }).agentOps: 1 file, the casted bridge stub atpackages/desktop/test/inbox-view.test.ts:30. It is the 12th desktop UI test, so 14 files reference the window bridge in total.exposeInMainWorld('agentOps', …): 1 file,packages/desktop/src/preload.cts:13.__agentOpsRequire,__agentOpsPath: 1 file, 4 lines, in the opsd bundle banner atpackages/desktop/scripts/package.mjs:31-34.
Examples:
packages/desktop/src/main.ts:116:LOGIN_NAME = 'Agent Ops'(Windows sign-in item).packages/supervisor/src/runtimes.ts:492: run prompt "You are … in Agent Ops v2. Use the agent-ops skill".packages/supervisor/src/notify.ts:166: webhook text prefixAgent Ops:.packages/desktop/ui/src/lib/filters.ts:152:localStoragekeysagent-ops.saved-views,agent-ops.board-ideas, eventsagent-ops:saved-views,agent-ops:board-ideas.packages/supervisor/src/proc.ts:152: named pipe\\.\pipe\agent-ops-launch-<hex>.packages/desktop/src/voice.ts:188: temp folder prefixagent-ops-voice-.packages/core/src/init.ts:32: the README thatops initwrites into a new store.packages/core/src/adopt.ts:470: theAGENTS.mdtextops adoptwrites into a repo.
#CLI, daemon and npm packages
| Item | Now | Count (outside the store) |
|---|---|---|
| CLI binary | ops (packages/cli/package.json bin) |
87 files / 517 backticked mentions |
| Daemon binary | opsd (packages/supervisor/package.json bin) |
149 / 2,018 |
| Root package | agent-ops (private) |
1 |
| Workspace packages | @agent-ops/core, @agent-ops/cli, @agent-ops/supervisor, @agent-ops/desktop |
47 / 76 imports and refs |
| Staged app manifest | name: agent-ops, productName: Agent Ops, author: agent-ops contributors (packages/desktop/scripts/package.mjs:74) |
1 |
| Installed shims | ops.cmd and the Git Bash ops in resources/bin (package.mjs:152-163) |
1 |
| Engine detection | pkg.name === '@agent-ops/supervisor' (packages/supervisor/src/merge.ts:99) |
1 |
All packages are private: true, so the npm scope needs no registration.
#Folders, files and paths
| Item | Now | Read in |
|---|---|---|
| Store folder | .agent-ops/ (ROOT_DIR_NAME) |
packages/core/src/config.ts:79, packages/supervisor/src/checkout.ts:7, merge.ts:240 (exclude glob), cli.ts:153 |
| Store format key | agent_ops: 2 in .agent-ops/config.yml |
packages/core/src/config.ts:20,84,97,275 |
| User config | %APPDATA%\agent-ops\config.yml, else $XDG_CONFIG_HOME/agent-ops/config.yml |
packages/core/src/config.ts:108-113 |
| opsd state dir | ~/.agent-ops/opsd (run records, logs, API token) |
packages/supervisor/src/config.ts:503 |
| Master Repo | user config key master; UI placeholder C:\dev\agent-ops-master; label "Agent Ops Master Repo" |
packages/core/src/mirror.ts:1, packages/desktop/ui/src/views/Settings.tsx:910,924 |
| Electron user data | %APPDATA%\Agent Ops (from productName; holds the relaunch marker) |
packages/desktop/src/main.ts:629,1242 |
| Install folder | %LOCALAPPDATA%\Programs\agent-ops (NSIS per-user, from the staged name) |
electron-builder |
| Registry key | HKCU\Software\Agent Ops (PathBefore) |
packages/desktop/build/path.ps1:18, installer.nsh:5 |
| Export guard | .agent-ops/** export-ignore |
.gitattributes, scripts/export-public.mjs:47-94 |
| Project and task prefix | project agent-ops, ids AO-nnnn |
.agent-ops/config.yml, task ids |
#Environment variables
Every OPS_* variable, with where code reads or sets it (tests and task history left out).
| Variable | Read or set in | Notes |
|---|---|---|
OPS_AGENT |
core/src/workspace.ts:113,505,518, core/src/adopt.ts:54,680, cli/src/cli.ts:684,1713, supervisor/src/supervisor.ts:780-785,1842,3891, supervisor/src/runtimes.ts:385,492, scripts |
Agent id; named in prompts and the skill |
OPS_ROOT |
core/src/workspace.ts:115,511, core/src/adopt.ts:678 |
One data root |
OPS_ROOTS |
core/src/config.ts:290-311, core/src/workspace.ts:527, supervisor/src/supervisor.ts:1785,1848,3891 |
Root list |
OPS_ROOTS_ONLY |
core/src/config.ts:295 |
Read only the listed roots |
OPS_CONFIG |
core/src/config.ts:59,109, scripts |
User config path |
OPS_STATE_DIR |
supervisor/src/config.ts:503, scripts |
opsd state dir |
OPS_RUN |
core/src/workspace.ts:121,508,2857, cli/src/cli.ts:192,1708, supervisor/src/supervisor.ts:786,1843 |
Run id |
OPS_PARENT_RUN |
core/src/workspace.ts:125,509, cli/src/cli.ts:194, supervisor/src/supervisor.ts:787,1847 |
Helper runs |
OPS_RUN_TOKEN |
supervisor/src/api.ts:74,165, daemon.ts:236-245,356, admin.ts:386, runs.ts:81, supervisor.ts:788,1844 |
Codex drops variables whose names contain TOKEN; the new name keeps that behavior and its workaround (kb note codex-drops-env-vars-whose-names-contain-key-secret-or-token) |
OPS_RUN_STATE_DIR |
cli/src/cli.ts:193, daemon.ts:244,357, admin.ts:387, supervisor.ts:789,1846 |
Pairs with the token |
OPS_DAEMON_ENTRY |
supervisor/src/daemon.ts:475-479, runenv.ts:6,20, desktop/scripts/package.mjs:34 |
Installed opsd entry |
OPS_BIN_DIR |
supervisor/src/runenv.ts:9,21, desktop/src/main.ts:111, desktop/scripts/package.mjs:151,163 |
App bin folder put first on PATH |
OPS_CWD |
desktop/src/main.ts:114,851, scripts |
Desktop working folder |
OPS_JOB_COMMAND |
supervisor/src/merge.ts:443,500,577 |
Merge job command |
OPS_LAUNCH_PIPE |
supervisor/src/proc.ts:96,155 |
Windows launch pipe |
OPS_PROBE |
supervisor/test/proc.test.ts:35,69,71,84 |
Test-only probe for %VAR% and !VAR! expansion in the Windows launch path |
OPS_E2E_CODEX |
supervisor/test/codex-sandbox.test.ts:11,13,79; also 2 task-history files in the store |
Opt-in end-to-end Codex test |
OPS_APP_PEM, OPS_APP_AUTH_FILE |
kb note only | Not read by code |
Outside the store: 69 files / 386 hits; with the store: 146 / 562.
Two desktop variables carry the old product name instead of the OPS_ prefix. Outside the store
they occur in 7 files / 13 hits.
| Variable | Read or set in | Notes |
|---|---|---|
AGENT_OPS_SCREENSHOTS |
read in desktop/src/main.ts:298,760,1255, scripts/promo/capture-main.mjs:12; set in scripts/desktop-smoke.mjs:151, scripts/promo-video.mjs:333, scripts/readme-media.mjs:773 |
Output folder; turns on offscreen screenshot mode. Documented in docs/desktop.md:231 and CHANGELOG.md:333 |
AGENT_OPS_VIEWS |
read in desktop/src/main.ts:763; set in scripts/promo-video.mjs:334, scripts/readme-media.mjs:773 |
Views to capture; documented in docs/desktop.md:232 |
#Desktop app, installer and updates
| Item | Now | File |
|---|---|---|
| App id | ai.dawid.agentops |
packages/desktop/electron-builder.yml |
| Product name | Agent Ops (also the exe name Agent Ops.exe, used in scripts/desktop-smoke.mjs:133 and the shims) |
electron-builder.yml, package.mjs:75 |
| Shortcut name | Agent Ops |
electron-builder.yml |
| Installer file | AgentOps-Setup.exe (README links releases/latest/download/AgentOps-Setup.exe) |
electron-builder.yml |
| Update feed | GitHub provider, dawid-ai/agent-ops, releaseType: release |
electron-builder.yml publish |
| Protocol handlers | none (no setAsDefaultProtocolClient, no protocols in the builder config) |
- |
| Window title | Agent Ops |
packages/desktop/ui/index.html:10 |
| Release title | Agent Ops $tag |
.github/workflows/release.yml:68 |
#Repos, skill, hooks and URLs
| Item | Now | Count or file |
|---|---|---|
| Public repo | dawid-ai/agent-ops |
6 files / 21 hits outside the store: package.json repository, README, electron-builder.yml, .github/workflows/docs.yml:23, docs |
| Private engine repo | Skovern/agent-ops (origin), local checkout C:\dev\agent-ops |
git remote, release skill |
| Skill | agent-ops in skills/, .claude/skills/, .agents/skills/; user copies in ~/.claude/skills/agent-ops and the Codex equivalent |
packages/supervisor/src/doctor.ts:85-165, package.mjs:67-68 |
| Hook command | ops sync --session-end (SessionEnd and PreCompact) |
packages/cli/src/hooks.ts:5, .claude/settings.json, every repo where ops hooks install ran |
| Docs site | dawid-ai.github.io/agent-ops |
README, docs/launch/0.2.0-beta.1.md |
| Release assets | github.com/dawid-ai/agent-ops/releases/... (promo video, installer) |
README |
| Link checker UA | agent-ops-docs-link-check |
scripts/check-docs-links.mjs:95 |
#CLI name clash check
Checked on 2026-11-09 against npm, Homebrew formulae and casks, PyPI, crates.io and Debian sources.
| Name | npm | Homebrew | PyPI | crates.io | Debian / Ubuntu | Verdict |
|---|---|---|---|---|---|---|
swarm |
taken (data sync lib) | free | taken (game) | taken | swarm-cluster (Debian sid and forky) installs /usr/bin/swarm (bioinformatics, also in Bioconda) |
Clashes on apt and conda; also crowded by AI "swarm" tools (swarmctl on npm is an AI agent swarm CLI) |
swarmd |
free | free | free | taken (26k downloads) | free | Weak clash through cargo install |
swarmup |
free | free | free | free | free | Clear everywhere |
swarmupd |
free | free | free | free | free | Clear everywhere |
sup |
taken | free | taken | taken | taken | Clashes |
Not checked: Winget and Scoop (no simple name lookup). The app installs per user with its own
bin folder, so a clash there would only matter through PATH order.
#Name table
| # | Class | Now | Final | Why |
|---|---|---|---|---|
| 1 | Product name | Agent Ops |
SwarmUp |
The brand, as on swarmup.tech |
| 2 | Slug (paths, keys, pipe) | agent-ops |
swarmup |
One lowercase word; no hyphen to get wrong |
| 3 | CLI | ops |
swarmup, with ops kept as an alias that prints a one-line notice until 0.4 |
swarm clashes on apt and conda; the alias keeps hooks, prompts and habits working through the switch |
| 4 | Daemon | opsd |
swarmupd |
Matches the CLI; swarmd is taken on crates.io |
| 5 | npm packages | agent-ops, @agent-ops/* |
swarmup, @swarmup/core, @swarmup/cli, @swarmup/supervisor, @swarmup/desktop |
Private packages, no registration needed |
| 6 | Store folder | .agent-ops/ |
.swarmup/; readers fall back to .agent-ops/ until 0.4 |
Matches the slug; the fallback lets unmigrated repos keep working |
| 7 | Store format key | agent_ops: 2 |
swarmup: 2; agent_ops: 2 still read |
Same reason |
| 8 | User config | %APPDATA%\agent-ops\config.yml, ~/.config/agent-ops/config.yml |
%APPDATA%\swarmup\config.yml, ~/.config/swarmup/config.yml; copied from the old path on first run |
Same reason |
| 9 | Daemon state dir | ~/.agent-ops/opsd |
~/.swarmup/swarmupd; copied on first run |
Same reason |
| 10 | Master Repo | "Agent Ops Master Repo", placeholder C:\dev\agent-ops-master |
"SwarmUp Master Repo", placeholder C:\dev\swarmup-master; existing master paths untouched |
Only the label and the hint change; moving a repo is the owner's call |
| 11 | Env prefix | OPS_* |
SWARMUP_* (for example SWARMUP_AGENT, SWARMUP_RUN_TOKEN); AGENT_OPS_SCREENSHOTS → SWARMUP_SCREENSHOTS, AGENT_OPS_VIEWS → SWARMUP_VIEWS; old names still read until 0.4, and runs get both |
Agents already in flight and old hooks keep working |
| 12 | App id | ai.dawid.agentops |
tech.swarmup.app; the new installer removes the old install |
Matches the domain. A new app id means a new install, so the migration task must uninstall the old one; there are few beta installs today, so now is the cheapest time |
| 13 | Product name, exe, shortcut | Agent Ops, Agent Ops.exe |
SwarmUp, SwarmUp.exe |
Follows row 1 |
| 14 | Installer file | AgentOps-Setup.exe |
SwarmUp-Setup.exe |
Follows row 1 |
| 15 | Install folder, registry | Programs\agent-ops, HKCU\Software\Agent Ops |
Programs\swarmup, HKCU\Software\SwarmUp |
Follows rows 1 and 2 |
| 16 | Update feed | GitHub dawid-ai/agent-ops |
GitHub dawid-ai/swarmup; the last Agent Ops release keeps pointing at the old name, which GitHub redirects after a rename |
Old installs still find the update; the migration task confirms this with a test release before the switch |
| 17 | Protocol handler | none | none now; swarmup:// if one is added later |
Nothing to rename |
| 18 | Preload bridge, storage keys | window.agentOps, agent-ops.* |
window.swarmup, swarmup.*, banner names __swarmupRequire, __swarmupPath; saved views and ideas copied once |
Keeps saved views |
| 19 | Public repo | dawid-ai/agent-ops |
dawid-ai/swarmup (GitHub rename, not a new repo) |
Keeps stars, issues, releases and redirects |
| 20 | Private engine repo | Skovern/agent-ops, C:\dev\agent-ops |
Skovern/swarmup; the local checkout path stays until a quiet moment |
Moving the checkout breaks running worktrees and opsd config |
| 21 | Skill | agent-ops |
swarmup; ops doctor flags a leftover agent-ops user copy |
The skill name is what agents see in prompts |
| 22 | Hook command | ops sync --session-end |
swarmup sync --session-end; hooks install replaces the old entry |
The alias in row 3 covers repos not yet updated |
| 23 | Docs site | dawid-ai.github.io/agent-ops |
swarmup.tech/docs (Pages with the custom domain) |
One domain for site and docs |
| 24 | Run prompts and UI text | "Agent Ops v2" | "SwarmUp" | The version number is in the app; the prompt does not need it |
| 25 | Project and task ids | project agent-ops, ids AO-nnnn |
project swarmup through project_aliases (agent-ops: swarmup); ids keep AO |
Ids are permanent references in commits, branches and events |
| 26 | Task history | agent-ops, ops, opsd, OPS_* in 7,607 store files |
left as written | Events are history; rewriting them changes ids and breaks sync |
| 27 | Changelog | released entries in CHANGELOG.md |
left as written; unreleased changelog.d/ fragments use the new names |
Released notes describe what shipped |
#What the code rename leaves
AO-0199 renamed the product, packages, CLI, daemon, desktop name, skill, hooks, docs, prompts and
log and UI text. Old names that still match rg -i "agent.?ops|\bopsd?\b" fall into these
classes; everything else is history (this page, CHANGELOG.md, docs/proposals/,
docs/launch/).
| Class | Examples | Why it stays |
|---|---|---|
| Aliases until 0.4 | ops and opsd bins (cli/src/ops.ts, supervisor/src/opsd.ts), ops.cmd shims, Bash(ops *), OPS_* |
Old hooks, scripts and runs keep working; each alias prints a notice on stderr |
| On-disk data (AO-0200) | .agent-ops/ store folder, agent_ops: 2, .ops/, user config path, ~/.agent-ops/opsd, opsd.log |
Moving data is the migration task |
| Desktop install (AO-0200) | app id, update feed repo: agent-ops, staged name: agent-ops (install folder), HKCU\Software\Agent Ops |
Changing them without the migration orphans the install, its PATH entry and its updates |
| Desktop state (AO-0200) | user data folder %APPDATA%\Agent Ops (pinned in main.ts), sign-in entry name, agent-ops.* storage keys |
Saved views, the relaunch marker and the sign-in entry live there; --ops-cwd is in that registry entry |
User config key opsd |
opsd.agents, opsd.merge.<root>, the opsd section in docs and errors |
A key in the user config file, which AO-0200 migrates with the file |
| Actor ids | opsd:merge, opsd:router, runtimeOf(actor) === 'opsd' |
Permanent ids in events, like task ids (row 25) |
| Store commit prefix | ops: N change(s) |
Sync finds the store branch by that prefix in existing history |
| Repo and site URLs | dawid-ai/agent-ops, dawid-ai.github.io/agent-ops, C:\dev\agent-ops |
They change with the repo rename and the website tasks |
| Other meanings of "ops" | ops as a count of file system calls (search-index.ts), test-local names, the ops role colour, promo.js |
Not the product name |
#Out of scope here
- The code rename, the migrations (rows 6-12, 18), the repo rename and the website are separate AO-0195 tasks.
- The
releaseskill (.claude/skills/release/) names both repos; the repo-rename task updates it.