[GH-ISSUE #5301] [BUG] Custom Agent Skill toggle in Agent Skills settings has no event handlers — cannot be enabled via UI #5009

Closed
opened 2026-06-05 14:51:28 -04:00 by yindo · 9 comments
Owner

Originally created by @iusprabowo on GitHub (Mar 30, 2026).
Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/5301

Originally assigned to: @timothycarambat on GitHub.

Description

When a custom agent skill is installed and visible in Settings → Agent Skills → Custom Skills, the toggle switch to enable it is completely non-functional. Clicking it either shows a brief animation that immediately reverts to OFF, or does not animate at all. The skill cannot be enabled through the UI.

Environment

  • AnythingLLM version: Docker (mintplexlabs/anythingllm, commit --)
    • Deployment: Docker (single container)
      • Browser: Chrome
        • OS: Windows 11

Steps to Reproduce

  1. Install a valid custom agent skill (with correct plugin.json containing schema: "skill-1.0.0", hubId, entrypoint, setup_args) into /app/server/storage/plugins/agent-skills/<skill-name>/
  2. Restart the container — the skill appears correctly under Settings → Agent Skills → Custom Skills with the right name and description
  3. Click on the skill to open the detail panel
  4. Click the toggle switch to enable the skill
  5. Navigate away and return — the toggle is back to OFF

Root Cause (confirmed via browser DevTools)

Inspecting the toggle's React props via __reactProps reveals:

{
  "type": "checkbox",
  "disabled": false,
  "className": "peer sr-only",
  "defaultChecked": false
}

There are no onChange or onClick handlers on the checkbox or any of its parent elements (checked 6 levels up the DOM tree). The toggle is rendered as an uncontrolled input (defaultChecked instead of checked) with no state management wired up.

As a result, no API call is ever made when the toggle is clicked — confirmed by monitoring network requests via window.performance.getEntriesByType('resource') before and after clicking.

The built-in default skills (RAG, web browsing, etc.) work correctly. Only custom/imported skills are affected.

Expected Behavior

Clicking the toggle in the custom skill detail panel should:

  1. Fire an API call to persist the enabled state (e.g. to /api/admin/system-preferences)
    1. Show the skill as On in the custom skills list
    1. Make the skill available to the @agent

Actual Behavior

The toggle has no event handlers. It is purely decorative. Custom skills cannot be enabled through the UI at all.

Workaround

None found via the UI. Directly calling /api/admin/system-preferences POST endpoint does not appear to have a supported key for enabling custom skills either.

Additional Notes

The imported_agent_skills key returned by /api/admin/system-preferences-for correctly lists the installed custom skill, confirming the backend reads the plugin.json successfully. The issue is purely in the frontend toggle component for custom skills.

Originally created by @iusprabowo on GitHub (Mar 30, 2026). Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/5301 Originally assigned to: @timothycarambat on GitHub. ## Description When a custom agent skill is installed and visible in **Settings → Agent Skills → Custom Skills**, the toggle switch to enable it is completely non-functional. Clicking it either shows a brief animation that immediately reverts to OFF, or does not animate at all. The skill cannot be enabled through the UI. ## Environment - AnythingLLM version: Docker (`mintplexlabs/anythingllm`, commit `--`) - - Deployment: Docker (single container) - - - Browser: Chrome - - - - OS: Windows 11 ## Steps to Reproduce 1. Install a valid custom agent skill (with correct `plugin.json` containing `schema: "skill-1.0.0"`, `hubId`, `entrypoint`, `setup_args`) into `/app/server/storage/plugins/agent-skills/<skill-name>/` 2. Restart the container — the skill appears correctly under **Settings → Agent Skills → Custom Skills** with the right name and description 3. Click on the skill to open the detail panel 4. Click the toggle switch to enable the skill 5. Navigate away and return — the toggle is back to OFF ## Root Cause (confirmed via browser DevTools) Inspecting the toggle's React props via `__reactProps` reveals: ```json { "type": "checkbox", "disabled": false, "className": "peer sr-only", "defaultChecked": false } ``` **There are no `onChange` or `onClick` handlers on the checkbox or any of its parent elements** (checked 6 levels up the DOM tree). The toggle is rendered as an **uncontrolled** input (`defaultChecked` instead of `checked`) with no state management wired up. As a result, no API call is ever made when the toggle is clicked — confirmed by monitoring network requests via `window.performance.getEntriesByType('resource')` before and after clicking. The built-in default skills (RAG, web browsing, etc.) work correctly. Only **custom/imported skills** are affected. ## Expected Behavior Clicking the toggle in the custom skill detail panel should: 1. Fire an API call to persist the enabled state (e.g. to `/api/admin/system-preferences`) 2. 2. Show the skill as **On** in the custom skills list 3. 3. Make the skill available to the `@agent` ## Actual Behavior The toggle has no event handlers. It is purely decorative. Custom skills cannot be enabled through the UI at all. ## Workaround None found via the UI. Directly calling `/api/admin/system-preferences` POST endpoint does not appear to have a supported key for enabling custom skills either. ## Additional Notes The `imported_agent_skills` key returned by `/api/admin/system-preferences-for` correctly lists the installed custom skill, confirming the backend reads the plugin.json successfully. The issue is purely in the frontend toggle component for custom skills.
yindo added the bugUI/UXneeds info / can't replicate labels 2026-06-05 14:51:28 -04:00
yindo closed this issue 2026-06-05 14:51:29 -04:00
Author
Owner

@evrencosta-creator commented on GitHub (Mar 30, 2026):

Thanks for the thorough report and DevTools analysis — that's very helpful.
We'll investigate the frontend toggle wiring for custom skills.

On Mon, Mar 30, 2026, 2:55 AM iBowo @.***> wrote:

iusprabowo created an issue (Mintplex-Labs/anything-llm#5301)
https://github.com/Mintplex-Labs/anything-llm/issues/5301
Description

When a custom agent skill is installed and visible in Settings → Agent
Skills → Custom Skills
, the toggle switch to enable it is completely
non-functional. Clicking it either shows a brief animation that immediately
reverts to OFF, or does not animate at all. The skill cannot be enabled
through the UI.
Environment

  • AnythingLLM version: Docker (mintplexlabs/anythingllm, commit --)
    • Deployment: Docker (single container)
      • Browser: Chrome
        • OS: Windows 11

Steps to Reproduce

  1. Install a valid custom agent skill (with correct plugin.json
    containing schema: "skill-1.0.0", hubId, entrypoint, setup_args) into
    /app/server/storage/plugins/agent-skills//
  2. Restart the container — the skill appears correctly under Settings
    → Agent Skills → Custom Skills
    with the right name and description
  3. Click on the skill to open the detail panel
  4. Click the toggle switch to enable the skill
  5. Navigate away and return — the toggle is back to OFF

Root Cause (confirmed via browser DevTools)

Inspecting the toggle's React props via __reactProps reveals:

{
"type": "checkbox",
"disabled": false,
"className": "peer sr-only",
"defaultChecked": false
}

There are no onChange or onClick handlers on the checkbox or any of its
parent elements
(checked 6 levels up the DOM tree). The toggle is
rendered as an uncontrolled input (defaultChecked instead of checked)
with no state management wired up.

As a result, no API call is ever made when the toggle is clicked —
confirmed by monitoring network requests via
window.performance.getEntriesByType('resource') before and after clicking.

The built-in default skills (RAG, web browsing, etc.) work correctly. Only custom/imported
skills
are affected.
Expected Behavior

Clicking the toggle in the custom skill detail panel should:

  1. Fire an API call to persist the enabled state (e.g. to
    /api/admin/system-preferences)
    1. Show the skill as On in the custom skills list
    1. Make the skill available to the @agent

Actual Behavior

The toggle has no event handlers. It is purely decorative. Custom skills
cannot be enabled through the UI at all.
Workaround

None found via the UI. Directly calling /api/admin/system-preferences
POST endpoint does not appear to have a supported key for enabling custom
skills either.
Additional Notes

The imported_agent_skills key returned by
/api/admin/system-preferences-for correctly lists the installed custom
skill, confirming the backend reads the plugin.json successfully. The issue
is purely in the frontend toggle component for custom skills.


Reply to this email directly, view it on GitHub
https://github.com/Mintplex-Labs/anything-llm/issues/5301?email_source=notifications&email_token=CAXJIUX4BPP2DJOGIZBOGKD4TISAXA5CNFSL4Z3JMQ5C6L3HNF2C22DVMIXUS43TOVSS6NBRGY4DIMRYGIYTFJTSMVQXG33OVJZXKYTTMNZGSYTFMSSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/CAXJIUS5ZJ3H3D7JL3ZX2TD4TISAXAVCNFSM6AAAAACXFX6RRWVHI2DSMVQWIX3LMV43ASLTON2WKOZUGE3DQNBSHAZDCMQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

<!-- gh-comment-id:4155965500 --> @evrencosta-creator commented on GitHub (Mar 30, 2026): Thanks for the thorough report and DevTools analysis — that's very helpful. We'll investigate the frontend toggle wiring for custom skills. On Mon, Mar 30, 2026, 2:55 AM iBowo ***@***.***> wrote: > *iusprabowo* created an issue (Mintplex-Labs/anything-llm#5301) > <https://github.com/Mintplex-Labs/anything-llm/issues/5301> > Description > > When a custom agent skill is installed and visible in *Settings → Agent > Skills → Custom Skills*, the toggle switch to enable it is completely > non-functional. Clicking it either shows a brief animation that immediately > reverts to OFF, or does not animate at all. The skill cannot be enabled > through the UI. > Environment > > - AnythingLLM version: Docker (mintplexlabs/anythingllm, commit --) > - > - Deployment: Docker (single container) > - > - > - Browser: Chrome > - > - > - > - OS: Windows 11 > > Steps to Reproduce > > 1. Install a valid custom agent skill (with correct plugin.json > containing schema: "skill-1.0.0", hubId, entrypoint, setup_args) into > /app/server/storage/plugins/agent-skills/<skill-name>/ > 2. Restart the container — the skill appears correctly under *Settings > → Agent Skills → Custom Skills* with the right name and description > 3. Click on the skill to open the detail panel > 4. Click the toggle switch to enable the skill > 5. Navigate away and return — the toggle is back to OFF > > Root Cause (confirmed via browser DevTools) > > Inspecting the toggle's React props via __reactProps reveals: > > { > "type": "checkbox", > "disabled": false, > "className": "peer sr-only", > "defaultChecked": false > } > > *There are no onChange or onClick handlers on the checkbox or any of its > parent elements* (checked 6 levels up the DOM tree). The toggle is > rendered as an *uncontrolled* input (defaultChecked instead of checked) > with no state management wired up. > > As a result, no API call is ever made when the toggle is clicked — > confirmed by monitoring network requests via > window.performance.getEntriesByType('resource') before and after clicking. > > The built-in default skills (RAG, web browsing, etc.) work correctly. Only *custom/imported > skills* are affected. > Expected Behavior > > Clicking the toggle in the custom skill detail panel should: > > 1. Fire an API call to persist the enabled state (e.g. to > /api/admin/system-preferences) > 2. > 2. Show the skill as *On* in the custom skills list > 3. > 3. Make the skill available to the @agent > > Actual Behavior > > The toggle has no event handlers. It is purely decorative. Custom skills > cannot be enabled through the UI at all. > Workaround > > None found via the UI. Directly calling /api/admin/system-preferences > POST endpoint does not appear to have a supported key for enabling custom > skills either. > Additional Notes > > The imported_agent_skills key returned by > /api/admin/system-preferences-for correctly lists the installed custom > skill, confirming the backend reads the plugin.json successfully. The issue > is purely in the frontend toggle component for custom skills. > > — > Reply to this email directly, view it on GitHub > <https://github.com/Mintplex-Labs/anything-llm/issues/5301?email_source=notifications&email_token=CAXJIUX4BPP2DJOGIZBOGKD4TISAXA5CNFSL4Z3JMQ5C6L3HNF2C22DVMIXUS43TOVSS6NBRGY4DIMRYGIYTFJTSMVQXG33OVJZXKYTTMNZGSYTFMSSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/CAXJIUS5ZJ3H3D7JL3ZX2TD4TISAXAVCNFSM6AAAAACXFX6RRWVHI2DSMVQWIX3LMV43ASLTON2WKOZUGE3DQNBSHAZDCMQ> > . > You are receiving this because you are subscribed to this thread.Message > ID: ***@***.***> >
Author
Owner

@timothycarambat commented on GitHub (Mar 30, 2026):

@evrencosta-creator Please dont answer on behalf of the core maintainers. The person who filed this bug may now think it has been triaged when it has not.

<!-- gh-comment-id:4158307332 --> @timothycarambat commented on GitHub (Mar 30, 2026): @evrencosta-creator Please dont answer on behalf of the core maintainers. The person who filed this bug may now think it has been triaged when it has not.
Author
Owner

@timothycarambat commented on GitHub (Mar 31, 2026):

Given a simple skill:
Image

https://github.com/user-attachments/assets/58d6ddae-d116-4d76-999f-44af412ad625

Can also confirm on container restart the setting is persisted.

<!-- gh-comment-id:4165378496 --> @timothycarambat commented on GitHub (Mar 31, 2026): Given a simple skill: <img width="1032" height="548" alt="Image" src="https://github.com/user-attachments/assets/d58c1937-060c-457f-ae1f-0247d9a2a505" /> https://github.com/user-attachments/assets/58d6ddae-d116-4d76-999f-44af412ad625 Can also confirm on container restart the setting is persisted.
Author
Owner

@RBlanchet commented on GitHub (Apr 25, 2026):

Hello @timothycarambat

I'm still experiencing the same issue on the latest Docker version.

Environment:
AnythingLLM: latest Docker image (mintplexlabs/anythingllm)
OS: Ubuntu
Browser: Chrome || Firefox

The toggle for custom agent skills still has no event handlers and cannot be enabled through the UI. The behavior is exactly as described in the original report.

Could you confirm which exact version includes the fix? Or is there a workaround in the meantime?

Thanks!

https://github.com/user-attachments/assets/600fcee3-fd43-483b-88d2-8d720fc0a3de

<!-- gh-comment-id:4320042645 --> @RBlanchet commented on GitHub (Apr 25, 2026): Hello @timothycarambat I'm still experiencing the same issue on the latest Docker version. Environment: AnythingLLM: latest Docker image (mintplexlabs/anythingllm) OS: Ubuntu Browser: Chrome || Firefox The toggle for custom agent skills still has no event handlers and cannot be enabled through the UI. The behavior is exactly as described in the original report. Could you confirm which exact version includes the fix? Or is there a workaround in the meantime? Thanks! https://github.com/user-attachments/assets/600fcee3-fd43-483b-88d2-8d720fc0a3de
Author
Owner

@timothycarambat commented on GitHub (Apr 25, 2026):

@RBlanchet since you're on docker can you view the docker logs when you click it? Either in your chrome console or those logs an error should be reported.

One additional issue a user had was that their tool config.json I'd did not match the folder name it was within, which made looking it up impossible for the system. That could be the case here with a custom tool.

Can you check that for me? That might be the main issue.

<!-- gh-comment-id:4320049378 --> @timothycarambat commented on GitHub (Apr 25, 2026): @RBlanchet since you're on docker can you view the docker logs when you click it? Either in your chrome console or those logs an error should be reported. One additional issue a user had was that their tool config.json I'd did not match the folder name it was within, which made looking it up impossible for the system. That could be the case here with a custom tool. Can you check that for me? That might be the main issue.
Author
Owner

@RBlanchet commented on GitHub (Apr 25, 2026):

Hello @timothycarambat

I was able to run some tests, modifying my plugin.json file by adding the active: false property (which was missing), and it seems to be working.

I didn't have any errors in the console or Docker logs, so I wasn't sure what the problem could be.

It seems that adding this property solved the problem, thanks for your (very) quick reply :)

<!-- gh-comment-id:4320060599 --> @RBlanchet commented on GitHub (Apr 25, 2026): Hello @timothycarambat I was able to run some tests, modifying my `plugin.json` file by adding the `active: false` property (which was missing), and it seems to be working. I didn't have any errors in the console or Docker logs, so I wasn't sure what the problem could be. It seems that adding this property solved the problem, thanks for your (very) quick reply :)
Author
Owner

@timothycarambat commented on GitHub (Apr 25, 2026):

Ah, so we have a schema validator and if anything isnt in the right place we will abort the change (mostly just a security thing) - glad that fixed it.

This is base schema btw: https://github.com/Mintplex-Labs/anything-llm/blob/master/server/utils/agents/imported-manifest.schema.json

<!-- gh-comment-id:4320477871 --> @timothycarambat commented on GitHub (Apr 25, 2026): Ah, so we have a schema validator and if _anything_ isnt in the right place we will abort the change (mostly just a security thing) - glad that fixed it. This is base schema btw: https://github.com/Mintplex-Labs/anything-llm/blob/master/server/utils/agents/imported-manifest.schema.json
Author
Owner

@amdradteam2-coder commented on GitHub (May 29, 2026):

Still not working with latest version v1.13.0 !!!

<!-- gh-comment-id:4576290816 --> @amdradteam2-coder commented on GitHub (May 29, 2026): Still not working with latest version v1.13.0 !!!
Author
Owner

@timothycarambat commented on GitHub (May 29, 2026):

@amdradteam2-coder - this is not your issue?
https://github.com/Mintplex-Labs/anything-llm/issues/5301#issuecomment-4320060599

This thread it turns out there was no bug

<!-- gh-comment-id:4579553488 --> @timothycarambat commented on GitHub (May 29, 2026): @amdradteam2-coder - this is not your issue? https://github.com/Mintplex-Labs/anything-llm/issues/5301#issuecomment-4320060599 This thread it turns out there was no bug
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Mintplex-Labs/anything-llm#5009