Muxy

Permissions

An extension lists what it needs in muxy.permissions. Calls without the matching permission fail, and unknown permission names stop the extension from loading. Ask for the minimum.

"permissions": ["tabs:read", "git:read", "notifications:write"]

Permissions

PermissionAllows
tabs:readtabs.list
tabs:writeOpen, switch, and create tabs; set a tab's title and icon; openTab commands
panes:readpanes.list, panes.readScreen
panes:writepanes.send, panes.sendKeys, panes.close, panes.rename
projects:readList projects and workspaces; the projects.changed event
projects:writeAdd, switch, rename, recolor, reorder projects; manage workspaces
projects:deleteprojects.delete
worktrees:readworktrees.list; the worktree.headChanged event
worktrees:writeworktrees.switchTo, worktrees.refresh
agents:readagents.list; the agent.status event
files:readfiles.list, files.read, files.stat; the file.changed event
files:writefiles.write, mkdir, rename, move, delete
git:readStatus, diffs, log, branches, worktrees, pull request info
git:writeEvery other git.* call
gh:readgh.user
storage:read / storage:writeRead / change the extension's storage
notifications:writenotifications.notify, toast
panels:writePanels, popovers, modal web views, and setting bar items; panel, popover, and modal commands
commands:run-scriptrunScript commands
commands:execexec, execAsync
shortcuts:registershortcuts.register, shortcuts.unregister
browser:read / browser:writeRead / drive browser tabs with muxy.browser
remote:serveAccepted; remote methods are not available in 2.x

http.fetch, dialogs, the picker, events, and lifecycle need no permission.

Runtime prompts

Some calls also ask the user each time, even with the permission:

Asks beforeRemembered per
Running a program (exec, execAsync)Program, or shell command
Typing or pressing keys in a terminalExtension
Reading terminal outputExtension
Opening a terminal tab that runs a commandCommand
Opening another extension's tabExtension
Changing the repository (git:write calls)Operation
Changing files (files:write calls)Operation
A web request (http.fetch)Host
Deleting a projectProject

The user can Allow once, Allow & Remember, Cancel, Deny & Remember, or block that kind of action for the extension. An unanswered prompt is denied after 60 seconds, and at most five prompts can wait at once.

Saved choices are listed under Permission rules on the extension's page in Settings → Extensions, with Reveal audit log for a history of decisions. Uninstalling clears them.