Personal user has undeletable “Default templates” plugin marked installed-by-admin / installed-by-default

Open 💬 4 comments Opened Jul 12, 2026 by mishamsk

What version of Codex are you using?

Codex CLI: 0.144.1
Platform: macOS, arm64
Plan/workspace: individual user on a personal plan, not a managed/workspace-admin Codex setup

What issue are you seeing?

Codex shows an OpenAI curated plugin named “Default templates” / openai-templates as installed and enabled, but I cannot remove it. The UI presents it as if it was installed by an admin:

  • Installed by admin
  • Source: Remote · OpenAI Curated
  • Auth: Auth on use
  • Version: local 0.1.0
  • App: Default templates
  • Skills include:
  • artifact-template-analytics-dashboard
  • artifact-template-business-review
  • artifact-template-design-report
  • artifact-template-experiment-analysis
  • artifact-template-financial-budget
  • artifact-template-investment-committee-memo
  • artifact-template-legal-memorandum
  • artifact-template-market-trends-report
  • artifact-template-minimal-letterhead
  • artifact-template-operating-calendar
  • artifact-template-operating-review
  • artifact-template-project-kickoff
  • artifact-template-project-tracker
  • artifact-template-sales-pipeline
  • artifact-template-simple-dark-mode
  • artifact-template-simple-light-mode
  • artifact-template-strategy-memorandum
  • artifact-template-system-design
  • artifact-template-team-alignment
  • artifact-template-three-statement-forecast

I do not understand why I have an undeletable “installed by admin” plugin when I am an individual user on a personal plan and there is no workspace admin.

What I tried

I tried removing the plugin through the CLI:

codex plugin remove openai-templates@openai-curated --json

That returned success-like output, but the plugin came back / remained visible in a fresh session.

I also tested via a short-lived app-server stdio session. plugin/installed reports:

{
  "id": "openai-templates@openai-curated-remote",
  "remotePluginId": "plugin_connector_1p_2330815c823c8191941e5dc465bb899f",
  "name": "openai-templates",
  "installed": true,
  "enabled": true,
  "installPolicy": "INSTALLED_BY_DEFAULT",
  "installPolicySource": "IMPLICIT_CANONICAL_APP",
  "authPolicy": "ON_USE",
  "displayName": "Default templates"
}

Calling plugin/uninstall with the exact plugin id returned {} but did not actually uninstall it:

{
  "pluginId": "openai-templates@openai-curated-remote",
  "response": { "result": {} }
}

Immediately afterward, plugin/installed still showed the plugin as installed and enabled.

Calling plugin/uninstall with the raw remote plugin id returned a backend 403:

Installed-by-default plugins cannot be uninstalled

Workaround

I was able to suppress the connector and skills by manually adding config overrides:

[apps.connector_openai_default_templates]
enabled = false

[[skills.config]]
name = "openai-templates:artifact-template-analytics-dashboard"
enabled = false

# repeated for all openai-templates:* skills

After that, skills/list no longer returns the openai-templates skills. However, plugin/installed still reports the plugin itself as installed and enabled because it is treated as INSTALLED_BY_DEFAULT / IMPLICIT_CANONICAL_APP.

Expected behavior

For a personal, non-managed user:

  1. Codex should not label a default OpenAI plugin as “Installed by admin” when there is no admin/workspace policy.
  2. If the user removes or disables a default plugin, that choice should persist across fresh sessions.
  3. plugin/uninstall should either actually uninstall/disable the plugin or return a clear actionable error. Returning {} while leaving the plugin installed/enabled is misleading.
  4. There should be a first-class way to opt out of the Default templates plugin and all of its skills.

Actual behavior

The plugin is undeletable, remains installed/enabled according to app-server, and is treated by the backend as an installed-by-default implicit canonical app. The only working mitigation I found is manual config overrides for the connector and every skill.

Related issues

This seems related to, but more specific than:

  • #29450

View original on GitHub ↗

4 Comments

gabimoncha · 1 month ago

what's weird is that you cannot disable this plugin. you can only disable the skills one by one

<img width="758" height="1003" alt="Image" src="https://github.com/user-attachments/assets/70f2204c-89d1-47e1-a12e-2a67b7c3f2b3" />

rbarantsevich · 20 days ago

Additional reproduction details from a personal account.

I can reproduce the same behavior on a personal ChatGPT account (not Business/Enterprise, no workspace admin, personal laptop).

Environment:

- ChatGPT/Codex desktop application
- Platform: macOS
- App version: `26.803.41515`
- Device: personal Mac laptop (not managed by organization / no MDM)
- Account type: personal ChatGPT Plus account
- Workspace: personal workspace (no Business/Enterprise/Edu workspace)
- User role: account owner
UI state:
- Plugin: **Default templates**
- Internal name: `openai-templates`
- UI label: **Installed by admin**
- No uninstall option is available
````

However, resolving the plugin metadata shows:

```text
source_plugin_name: openai-templates
source_plugin_status: enabled
source_plugin_installation_policy: installed_by_default
source_plugin_installed: true
source_plugin_user_enabled: true

The dependency metadata reports:

canonical_plugin_display_name: Default templates
canonical_plugin_installation_policy: installed_by_default
canonical_plugin_installed: true
canonical_plugin_user_enabled: true
optional: false

I also attempted uninstall using the resolved plugin ID:

plugin_connector_1p_2330815c823c8191941e5dc465bb899f

The uninstall operation returned:

status: not_installed

This looks like a state mismatch:

  • Backend metadata reports the plugin as installed (installed=true, installed_by_default).
  • UI presents it as "Installed by admin".
  • Uninstall treats it as not installed / not removable.

This seems to be either:

  1. an intentionally non-removable built-in plugin,
  2. a UI labeling issue (installed_by_default shown as "installed by admin"),
  3. or an inconsistency between plugin registry and uninstall flow.

If this plugin is intentionally built-in, it would probably be clearer to expose that explicitly rather than showing "Installed by admin" for personal accounts.

elenbeefree-alt · 2 days ago

Additional reproduction: Android mobile web, personal ChatGPT Plus account

Hi @mishamsk, I can independently reproduce the same issue on a different platform.

Unlike the existing reports involving macOS and the Codex CLI or desktop application, I encountered this directly in the ChatGPT web interface using a browser on Android.

Environment

| Detail | Observed |
|---|---|
| Platform | Android |
| Interface | ChatGPT in a mobile web browser |
| Account | Personal ChatGPT Plus account |
| Managed workspace | None that I am aware of |
| Plugin | Default templates |
| Plugin URL prefix | plugin_connector_1p_233... |
| Displayed installation status | Installed by admin |
| Removal option | No visible uninstall option |

Steps to reproduce

  1. Sign in to a personal ChatGPT account using a browser on Android.
  2. Open the ChatGPT plugins section.
  3. Open the Default templates plugin.
  4. Select the plugin's three-dot menu.
  5. Observe the available Manage option and the disabled Installed by admin entry.
  6. Observe that no ordinary uninstall option is provided.

Actual behavior

  • The plugin appears in my personal account despite my not knowingly installing it.
  • The interface identifies the plugin as Installed by admin.
  • I am not aware of any organization, enterprise workspace, or administrator associated with my account.
  • The interface does not identify who or what the administrator is.
  • The plugin cannot be removed through the available menu.
  • The plugin contains document, spreadsheet, and presentation templates, including the same types of templates described in the original report.

Expected behavior

For a personal account:

  • Automatically provided plugins should be clearly labeled Provided by OpenAI or Installed by default, not Installed by admin.
  • The interface should identify the actual installation source and distinguish platform defaults from actions taken by an organizational administrator.
  • Users should be able to view the plugin's permissions, associated skills, and connected capabilities.
  • Users should have a clear way to disable or remove optional plugins and their associated capabilities.

Why the Android reproduction matters

This behavior is not limited to:

  • macOS;
  • the Codex desktop application;
  • the Codex CLI; or
  • a local configuration file.

The same plugin and administrator label also appear through ChatGPT's Android mobile web interface. This suggests that the behavior may involve shared account-level plugin state or a cross-platform installation policy, although I cannot independently verify the underlying implementation.

Questions for maintainers

  1. What does Installed by admin mean on a personal account without a known administrator?
  2. Is Default templates automatically installed by OpenAI or another platform-controlled process?
  3. Why does the interface attribute a default plugin to an administrator?
  4. Does the same installation policy apply across ChatGPT web, mobile, desktop, and Codex?
  5. How can a personal user inspect when the plugin was installed and what installed it?
  6. How can the plugin and all associated skills or capabilities be disabled or removed?
  7. Can the label be corrected so users can distinguish an OpenAI-provided default from an actual organizational installation?

This report concerns installation transparency, account attribution, and user control.

nullbio · 2 days ago

I have this problem too. Is it related to the installation of the Codex desktop app perhaps? I installed the new Linux app, so now I have that + the CLI on my system.