Install
openclaw skills install application-managerManage a shared Windows application registry and control which agents may run registered apps. Use when the user asks for the application manager, application registry, app registry, register an application, list registered apps, add or edit an app entry, change which agents may run an app, change app mode (full, allowlist, off), or launch a registered Windows application through the registry.
openclaw skills install application-managerOperate a chat-first manager for a shared application registry.
Treat the registry file as the source of truth.
Prefer updating the registry over inventing one-off launch rules in chat.
Keep the interaction menu-driven when the user asks to manage the registry directly.
Also use the registry to resolve natural-language application launch requests like open last z.
off, do not launch the app.allowlist, only agents listed in allowed_agents may launch it.full, any agent may launch it.cmd.exe /c start "" "<path>", rather than ambiguous interpreter-style launch forms.Preferred registry path:
~/.openclaw/registries/application_registry.jsonIf the registry file does not exist yet:
{}Treat requests like these as a request to open this skill's wizard:
application manageropen application managershow application managerapplication registryopen application registryshow application registryapp registryregister an applicationadd applicationedit applicationchange application policywho can run this applist registered appsAlso treat natural-language app-launch requests as a request to use this skill's registry lookup and launch behavior, for example:
open last zlaunch last zrun last zstart last zopen <registered app name>launch <registered app name>run <registered app name>start <registered app name>When this skill is triggered for registry management, open an app-first menu.
If the registry has entries, show the apps first as numbered launch targets. Choosing an app number should launch it directly. Management actions should be typed as words, not numbered.
Preferred shape:
Application Manager
Registry file: ~/.openclaw/registries/application_registry.json
Applications
1. Last Z
Commands
- add
- edit
- delete
- policy
- validate
- quit
Reply with an app number to launch it, or type `add`, `edit`, `delete`, `policy`, `validate`, or `quit`.
If multiple apps exist, continue numbering only the app list.
If the registry file exists but is empty, show:
Application Manager
Registry file: ~/.openclaw/registries/application_registry.json
Status: no applications registered yet
Commands
- add
- quit
Reply with `add` or `quit`.
If the registry file does not yet exist, say:
Application Manager
Registry file: ~/.openclaw/registries/application_registry.json
Status: not created yet
Commands
- create
- quit
Reply with `create` or `quit`.
On the start screen, list registered applications as numbered launch targets.
Choosing an app number launches that app directly from the menu.
Treat only app numbers as numeric choices.
Treat management commands as words like add, edit, delete, policy, validate, and quit.
When launching from the start screen:
off, refuse launch plainlyallowlist, allow launch only when the current agent id is in allowed_agentsfull, allow launchcmd.exe /c start "" "<launch_path>"If the user wants details instead of launch, the skill may show the selected app entry before acting only when needed for confirmation or troubleshooting.
Prompt for:
full, allowlist, or offallowlistRules:
full, store an empty allowed_agents arrayoff, store an empty allowed_agents arrayallowlist, require at least one allowed agentBefore saving, show the proposed entry and ask for explicit confirmation. After save, repeat the start menu.
Show the numbered list of apps.
The user chooses an entry number.
Allow back or quit.
Then show:
Edit Application
Selected: Last Z
Current values:
- launch_path: C:\Users\greg\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Last Z\Last Z.lnk
- runtime_exe: C:\Users\greg\AppData\Local\Last Z\Game\Survival.exe
- process_name: Survival.exe
- mode: allowlist
- allowed_agents: system_engineer
Reply with:
1. Edit launch path
2. Edit runtime executable path
3. Edit process name
4. Edit mode
5. Edit allowed agents
6. Edit all
Type `back` to go back or `quit` to exit.
Show the proposed updated entry before writing. Ask for explicit confirmation. Then repeat the start menu.
Show the numbered list.
The user chooses an entry number.
Allow back or quit.
Then show the selected entry and ask for explicit confirmation. Do not delete without confirmation. After delete, confirm success and repeat the start menu.
Show the numbered list.
The user chooses an entry number.
Allow back or quit.
Then offer:
Change Launch Policy
Selected: Last Z
Current mode: allowlist
Current allowed_agents: system_engineer
Reply with:
1. Set mode to full
2. Set mode to allowlist
3. Set mode to off
4. Edit allowed agents only
Type `back` to go back or `quit` to exit.
Rules:
full, clear allowed_agentsoff, clear allowed_agentsallowlist, require at least one allowed agentRead the registry fresh and validate each entry.
For each app, check:
launch_path exists and is non-emptyruntime_exe is optionalprocess_name is optionalmode is one of full, allowlist, offallowed_agents is an arrayallowed_agents is non-empty when mode is allowlistDisplay grouped results:
Do not guess repairs. If JSON is malformed, stop and report the parse error clearly. After reporting, repeat the start menu.
Exit cleanly with a short completion message.
Use this JSON shape:
{
"Last Z": {
"launch_path": "C:\\Users\\greg\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Last Z\\Last Z.lnk",
"runtime_exe": "C:\\Users\\greg\\AppData\\Local\\Last Z\\Game\\Survival.exe",
"process_name": "Survival.exe",
"mode": "allowlist",
"allowed_agents": [
"system_engineer"
]
}
}
Keep the schema simple unless a stronger need appears later. Do not add extra metadata fields by default.
When a user asks to run a registered app, including natural-language requests like open last z:
cmd.exe /c start "" "<launch_path>"When a user asks to stop or close a registered app:
process_name is present, prefer stopping by that process name or PID discovery based on that processruntime_exe is present, identify the running process from that executable path, then stop itprocess_name nor runtime_exe is present, say the app can be launched but does not yet have enough stop metadata storedIf a direct .lnk or interpreter-style launch fails due to execution-policy shape, retry with a stable launcher executable before concluding the app cannot be opened.
When reading or writing the registry:
~/.openclaw/registries/ if neededIf JSON is malformed:
If needed for future expansion, add references under references/ for: