feat: Link Sharing for Models #5256

Closed
opened 2025-11-11 16:15:43 -06:00 by GiteaMirror · 9 comments
Owner

Originally created by @ricdikulous on GitHub (May 21, 2025).

Originally assigned to: @tjbck on GitHub.

Check Existing Issues

  • I have searched the existing issues and discussions.

Problem Description

Custom models made via the workspace UI can currently be:

  • Private + Groups – visible to predefined groups.
    Pain point: users can’t create or manage groups themselves (needs an admin)
  • Public – visible to everyone.
    Pain point: every public model is auto-added to every user’s model-picker, cluttering the UI.

There is no way for a user to share a model with a handful of colleagues or testers without involving an admin or polluting everyone else’s dropdown.

Desired Solution you'd like

Add a “Share via Link” option alongside the current Public / Private settings.

  • Access by URL - Anyone with the unique link can interact with the model
  • No UI clutter - The model remains hidden from all users’ dropdowns unless they are interacting with the model.
  • Easy sharing - A Copy Link button (or read-only field with one-click copy) lives in the model settings panel.

Alternatives Considered

Create the model via the API, with the permissions set to public making sure to add in the "hidden":true field (which is not available in the UI for models created via the workspace UI).

Then construct a link leveraging the ?model=hidden-model-id param to give access to the mode.

While this works, it's not a great experience for the users

Additional Context

Very similar to what ChatGPT have for their customGPTs

Image
Originally created by @ricdikulous on GitHub (May 21, 2025). Originally assigned to: @tjbck on GitHub. ### Check Existing Issues - [x] I have searched the existing issues and discussions. ### Problem Description Custom models made via the workspace UI can currently be: * **Private + Groups** – visible to predefined groups. *Pain point*: users can’t create or manage groups themselves (needs an admin) * **Public** – visible to everyone. *Pain point*: every public model is auto-added to every user’s model-picker, cluttering the UI. There is **no way** for a user to share a model with a handful of colleagues or testers **without** involving an admin **or** polluting everyone else’s dropdown. ### Desired Solution you'd like Add a **“Share via Link”** option alongside the current Public / Private settings. * **Access by URL** - Anyone with the unique link can interact with the model * **No UI clutter** - The model remains hidden from all users’ dropdowns unless they are interacting with the model. * **Easy sharing** - A **Copy Link** button (or read-only field with one-click copy) lives in the model settings panel. ### Alternatives Considered Create the model via the API, with the permissions set to public making sure to add in the `"hidden":true` field (which is not available in the UI for models created via the workspace UI). Then construct a link leveraging the `?model=hidden-model-id` param to give access to the mode. While this works, it's not a great experience for the users ### Additional Context Very similar to what ChatGPT have for their customGPTs <img width="1276" alt="Image" src="https://github.com/user-attachments/assets/2065316b-31d0-4314-8564-cce43b9320bb" />
Author
Owner

@Ithanil commented on GitHub (May 23, 2025):

Would be a nice feature! While it's no substitute for proper user-managed groups, it would still be useful if these were a thing.

@Ithanil commented on GitHub (May 23, 2025): Would be a nice feature! While it's no substitute for proper user-managed groups, it would still be useful if these were a thing.
Author
Owner

@ricdikulous commented on GitHub (May 25, 2025):

Agreed @Ithanil, the ability for users to create/manage their own groups and apply more granular access controls would be incredible. I’m imagining something similar to Google Docs style permissions, where the author specifies the users/groups that have access and on top of that, the access level (view / edit / owner etc.). However realise the implementation effort here is likely quite high.

From my perspective, if we take what Open WebUI currently offers and add just two things, we could cover a huge number of use-cases:

I suggest this because, in organisations today, I see people using exactly this pattern with their own ChatGPT subscriptions and it’s very effective.

They create private Custom GPTs for day to day tasks and if they think it will be useful for others they generate a share link and post it in Teams/Slack.

And this works.

2. Add an “Allow sharing models with groups” permission (disabled for most users)

Being able to turn off group sharing matters because many groups will contain hundreds of people and you’d quickly hit the same problem as public models - dropdown pollution and clutter.


Model Discoverability (opt-in access)

One other piece that comes to mind when discussing this is discoverability. Right now, any model a user can access is pushed straight into the recipient’s model dropdown. That’s fine for base models, but in a large org it clutters the UI and forces everyone to “opt-in by default.”

A middle ground would be to mark models as discoverable (to specific groups, individuals, or everyone) without immediately adding them to dropdowns:

  • Add a "Discoverable” flag to the model settings, with a scope selector (Public / Groups / Individuals).
  • Repurpose the workspace page:
    • My models – items I created.
    • Models shared with me – discoverable items I could add.
    • Users click “Add to My Models” to bring one into their dropdown.

This lets users share models org-wide without disrupting everyone’s experience. Admin controls could require approval before a model appears in the discoverable list and allow revocation of problematic items.

In the meantime you could mimic this with link sharing and a central wiki page that lists all the models that you want to be discoverable but that would be a far more disjointed experience.

@ricdikulous commented on GitHub (May 25, 2025): Agreed @Ithanil, the ability for users to create/manage their own groups and apply more granular access controls would be incredible. I’m imagining something similar to Google Docs style permissions, where the author specifies the users/groups that have access and on top of that, the access level (view / edit / owner etc.). However realise the implementation effort here is likely quite high. From my perspective, if we take what Open WebUI currently offers and add just **two** things, we could cover a huge number of use-cases: #### 1. Link sharing of models I suggest this because, in organisations today, I see people using exactly this pattern with their own ChatGPT subscriptions and it’s very effective. They create private Custom GPTs for day to day tasks and if they think it will be useful for others they generate a share link and post it in Teams/Slack. And this works. #### 2. Add an **“Allow sharing models with groups”** permission (disabled for most users) Being able to turn off *group sharing* matters because many groups will contain hundreds of people and you’d quickly hit the same problem as public models - dropdown pollution and clutter. --- #### Model **Discoverability** (opt-in access) One other piece that comes to mind when discussing this is **discoverability**. Right now, any model a user can access is pushed straight into the recipient’s model dropdown. That’s fine for base models, but in a large org it clutters the UI and forces everyone to “opt-in by default.” A middle ground would be to mark models as discoverable (to specific groups, individuals, or everyone) without immediately adding them to dropdowns: * Add a "Discoverable” flag to the model settings, with a scope selector (Public / Groups / Individuals). * Repurpose the workspace page: * **My models** – items I created. * **Models shared with me** – discoverable items I *could* add. * Users click “Add to My Models” to bring one into their dropdown. This lets users share models org-wide without disrupting everyone’s experience. Admin controls could require approval before a model appears in the discoverable list and allow revocation of problematic items. In the meantime you could mimic this with link sharing and a central wiki page that lists all the models that you want to be discoverable but that would be a far more disjointed experience.
Author
Owner

@Ithanil commented on GitHub (May 25, 2025):

Agreed @Ithanil, the ability for users to create/manage their own groups and apply more granular access controls would be incredible. I’m imagining something similar to Google Docs style permissions, where the author specifies the users/groups that have access and on top of that, the access level (view / edit / owner etc.). However realise the implementation effort here is likely quite high.

From my perspective, if we take what Open WebUI currently offers and add just two things, we could cover a huge number of use-cases:

I suggest this because, in organisations today, I see people using exactly this pattern with their own ChatGPT subscriptions and it’s very effective.

They create private Custom GPTs for day to day tasks and if they think it will be useful for others they generate a share link and post it in Teams/Slack.

And this works.

2. Add an “Allow sharing models with groups” permission (disabled for most users)

Being able to turn off group sharing matters because many groups will contain hundreds of people and you’d quickly hit the same problem as public models - dropdown pollution and clutter.

Model Discoverability (opt-in access)

One other piece that comes to mind when discussing this is discoverability. Right now, any model a user can access is pushed straight into the recipient’s model dropdown. That’s fine for base models, but in a large org it clutters the UI and forces everyone to “opt-in by default.”

A middle ground would be to mark models as discoverable (to specific groups, individuals, or everyone) without immediately adding them to dropdowns:

* Add a "Discoverable” flag to the model settings, with a scope selector (Public / Groups / Individuals).

* Repurpose the workspace page:
  
  * **My models** – items I created.
  * **Models shared with me** – discoverable items I _could_ add.
  * Users click “Add to My Models” to bring one into their dropdown.

This lets users share models org-wide without disrupting everyone’s experience. Admin controls could require approval before a model appears in the discoverable list and allow revocation of problematic items.

In the meantime you could mimic this with link sharing and a central wiki page that lists all the models that you want to be discoverable but that would be a far more disjointed experience.

Regarding the user groups feature, see my detailed proposals in this PR's discussion: https://github.com/open-webui/open-webui/pull/13685#issuecomment-2903730799 I think it would be ideal for a very large org, where it's not feasible for one or two central admins to manage the groups and resources of tens of thousands of users.

I really like your elegant sharing ideas for models, especially your "Discoverability" idea to allow public sharing without clutter.

I'm not sure though if link sharing is adequate for knowledge bases, where then access to potentially private data would be exposed through a link that could easily spread. In any case the owner would need a way to un-share with selected recipients.

@Ithanil commented on GitHub (May 25, 2025): > Agreed [@Ithanil](https://github.com/Ithanil), the ability for users to create/manage their own groups and apply more granular access controls would be incredible. I’m imagining something similar to Google Docs style permissions, where the author specifies the users/groups that have access and on top of that, the access level (view / edit / owner etc.). However realise the implementation effort here is likely quite high. > > From my perspective, if we take what Open WebUI currently offers and add just **two** things, we could cover a huge number of use-cases: > #### 1. Link sharing of models > > I suggest this because, in organisations today, I see people using exactly this pattern with their own ChatGPT subscriptions and it’s very effective. > > They create private Custom GPTs for day to day tasks and if they think it will be useful for others they generate a share link and post it in Teams/Slack. > > And this works. > #### 2. Add an **“Allow sharing models with groups”** permission (disabled for most users) > > Being able to turn off _group sharing_ matters because many groups will contain hundreds of people and you’d quickly hit the same problem as public models - dropdown pollution and clutter. > #### Model **Discoverability** (opt-in access) > > One other piece that comes to mind when discussing this is **discoverability**. Right now, any model a user can access is pushed straight into the recipient’s model dropdown. That’s fine for base models, but in a large org it clutters the UI and forces everyone to “opt-in by default.” > > A middle ground would be to mark models as discoverable (to specific groups, individuals, or everyone) without immediately adding them to dropdowns: > > * Add a "Discoverable” flag to the model settings, with a scope selector (Public / Groups / Individuals). > > * Repurpose the workspace page: > > * **My models** – items I created. > * **Models shared with me** – discoverable items I _could_ add. > * Users click “Add to My Models” to bring one into their dropdown. > > > This lets users share models org-wide without disrupting everyone’s experience. Admin controls could require approval before a model appears in the discoverable list and allow revocation of problematic items. > > In the meantime you could mimic this with link sharing and a central wiki page that lists all the models that you want to be discoverable but that would be a far more disjointed experience. Regarding the user groups feature, see my detailed proposals in this PR's discussion: https://github.com/open-webui/open-webui/pull/13685#issuecomment-2903730799 I think it would be ideal for a very large org, where it's not feasible for one or two central admins to manage the groups and resources of tens of thousands of users. I really like your elegant sharing ideas for *models*, especially your "Discoverability" idea to allow public sharing without clutter. I'm not sure though if link sharing is adequate for knowledge bases, where then access to potentially private data would be exposed through a link that could easily spread. In any case the owner would need a way to un-share with selected recipients.
Author
Owner

@tjbck commented on GitHub (May 26, 2025):

Added to dev with 9a5febc2d1

Image

@tjbck commented on GitHub (May 26, 2025): Added to dev with 9a5febc2d168531196458563515226056e6a37c9 ![Image](https://github.com/user-attachments/assets/60b000f3-605e-4586-b772-2ae68c290490)
Author
Owner

@Ithanil commented on GitHub (May 26, 2025):

Added to dev with 9a5febc

Image

But this will only work, if the model is already shared publicly or to the recipients group, right? I don't think that was the idea of this request.

@Ithanil commented on GitHub (May 26, 2025): > Added to dev with [9a5febc](https://github.com/open-webui/open-webui/commit/9a5febc2d168531196458563515226056e6a37c9) > > ![Image](https://github.com/user-attachments/assets/60b000f3-605e-4586-b772-2ae68c290490) But this will only work, if the model is already shared publicly or to the recipients group, right? I don't think that was the idea of this request.
Author
Owner

@tjbck commented on GitHub (May 26, 2025):

@Ithanil yes, and you can hide the model.

@tjbck commented on GitHub (May 26, 2025): @Ithanil yes, and you can hide the model.
Author
Owner

@ricdikulous commented on GitHub (May 26, 2025):

Awesome!

Yes, this addresses the original request: adding a couple of UI elements so that what’s already possible through the API is also possible in the UI.

I’d love to see the other ideas we discussed in this thread implemented (i.e. dedicated link-sharing, better discoverability, limits on which groups a user can share to, more granular access controls, and user-managed groups) but I admit those are larger, more impactful changes that probably need more discussion.

Added to dev with 9a5febc
Image

But this will only work, if the model is already shared publicly or to the recipients group, right? I don't think that was the idea of this request.

If the model is public and hidden then it won't show in anyone's model dropdown (unless they are using it) however anyone with the link can use it, which is the same behaviour as a dedicated link sharing option, just with a couple more steps.

@ricdikulous commented on GitHub (May 26, 2025): Awesome! Yes, this addresses the original request: adding a couple of UI elements so that what’s already possible through the API is also possible in the UI. I’d love to see the other ideas we discussed in this thread implemented (i.e. dedicated link-sharing, better discoverability, limits on which groups a user can share to, more granular access controls, and user-managed groups) but I admit those are larger, more impactful changes that probably need more discussion. > > Added to dev with [9a5febc](https://github.com/open-webui/open-webui/commit/9a5febc2d168531196458563515226056e6a37c9) > > ![Image](https://github.com/user-attachments/assets/60b000f3-605e-4586-b772-2ae68c290490) > > But this will only work, if the model is already shared publicly or to the recipients group, right? I don't think that was the idea of this request. If the model is public and hidden then it won't show in anyone's model dropdown (unless they are using it) however anyone with the link can use it, which is the same behaviour as a dedicated link sharing option, just with a couple more steps.
Author
Owner

@Ithanil commented on GitHub (May 27, 2025):

Awesome!

Yes, this addresses the original request: adding a couple of UI elements so that what’s already possible through the API is also possible in the UI.

I’d love to see the other ideas we discussed in this thread implemented (i.e. dedicated link-sharing, better discoverability, limits on which groups a user can share to, more granular access controls, and user-managed groups) but I admit those are larger, more impactful changes that probably need more discussion.

Added to dev with 9a5febc
Image

But this will only work, if the model is already shared publicly or to the recipients group, right? I don't think that was the idea of this request.

If the model is public and hidden then it won't show in anyone's model dropdown (unless they are using it) however anyone with the link can use it, which is the same behaviour as a dedicated link sharing option, just with a couple more steps.

Yes, understood. I thought it didn't exactly address the issue because the user still has to actively hide it for the desired effect of the admin. Or in other words, user still needs the permission to clutter the public space.

@Ithanil commented on GitHub (May 27, 2025): > Awesome! > > Yes, this addresses the original request: adding a couple of UI elements so that what’s already possible through the API is also possible in the UI. > > I’d love to see the other ideas we discussed in this thread implemented (i.e. dedicated link-sharing, better discoverability, limits on which groups a user can share to, more granular access controls, and user-managed groups) but I admit those are larger, more impactful changes that probably need more discussion. > > > > Added to dev with [9a5febc](https://github.com/open-webui/open-webui/commit/9a5febc2d168531196458563515226056e6a37c9) > > > ![Image](https://github.com/user-attachments/assets/60b000f3-605e-4586-b772-2ae68c290490) > > > > > > But this will only work, if the model is already shared publicly or to the recipients group, right? I don't think that was the idea of this request. > > If the model is public and hidden then it won't show in anyone's model dropdown (unless they are using it) however anyone with the link can use it, which is the same behaviour as a dedicated link sharing option, just with a couple more steps. Yes, understood. I thought it didn't exactly address the issue because the *user* still has to actively hide it for the desired effect of the *admin*. Or in other words, user still needs the permission to clutter the public space.
Author
Owner

@taylorwilsdon commented on GitHub (May 27, 2025):

Just throwing it out there that I still think this is an elegant implementation from a UX perspective haha I've been running it in my build since last year, so you can share straight from the dropdown rather than having to navigate into the models list directly

Image

from https://github.com/open-webui/open-webui/pull/9186

Glad to see we've at least got the option now though! Saw this in the release notes and got excited for a second thinking that an old PR of mine had been merged and I could remove a divergence in my internal codebase 😂 I'm stoked about the underlying capability here though, being able to share work in progress with a single person via link is huge from a usability standpoint.

@taylorwilsdon commented on GitHub (May 27, 2025): Just throwing it out there that I still think this is an elegant implementation from a UX perspective haha I've been running it in my build since last year, so you can share straight from the dropdown rather than having to navigate into the models list directly ![Image](https://github.com/user-attachments/assets/ca4e0d36-badd-408d-a4aa-df08965b1d2c) from https://github.com/open-webui/open-webui/pull/9186 Glad to see we've at least got the option now though! Saw this in the release notes and got excited for a second thinking that an old PR of mine had been merged and I could remove a divergence in my internal codebase 😂 I'm stoked about the underlying capability here though, being able to share work in progress with a single person via link is huge from a usability standpoint.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#5256