> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corepillar.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Rolling out ModelHub

> Administrator guide to giving employees ModelHub: connect models in AgentHub first, approve emails, add people as Users, hand out the right URL, and check it works.

This guide is for organization admins and super admins. It takes you from an empty organization to employees chatting on [modelhub.corepillar.ai](https://modelhub.corepillar.ai), without giving them the rest of the platform.

## The short version

1. **Connect models** in AgentHub's Model Manager, on the project employees will use. Include a cheap, a mid-range and a frontier model.
2. **Approve their emails** in **Settings** → **Platform access** (super admins), one address or a whole `@domain`.
3. **Add them as Users** in **Settings** → **User Management**, and share the invite links.
4. **Send them** `https://modelhub.corepillar.ai`, not the AgentHub address.

<Steps>
  <Step title="Connect models in AgentHub first">
    Employees have no Model Manager in ModelHub and cannot fix a missing model themselves. Without one they see "No models available yet" and cannot send anything.

    1. Sign in to [AgentHub](https://pillarforge.corepillar.ai).
    2. Open **Model Manager** in the project employees will use, add a provider API key, and attach models. See [Model Manager](/agenthub/model-manager).

    **Which project?** When an employee signs in with an email code, ModelHub sends them to the first project (by creation order) in their organization that has a model attached. When they accept an invite link, they land on the organization's **first project**, whether or not it has models. The simplest setup is to connect models to the organization's first project.

    Chat spends on your organization's own provider keys. If a model's key is revoked or rejected, ModelHub tries your organization's other keys for the same provider before failing the message.
  </Step>

  <Step title="Choose a spread of models">
    Auto routing sends each message to the cheapest connected model that can handle it. With one model connected, everything goes to that model and there is nothing to save.

    Connect at least one model from each size:

    | Size | Blended price per million tokens | Examples |
    | - | - | - |
    | Small | up to \$3.50 | GPT-4.1 mini, Claude Haiku 4.5, Gemini 3.x Flash |
    | Mid | $3.50 to $8.50 | GPT-4.1, Claude Sonnet 5, GPT-4o |
    | Large | above \$8.50 | Claude Opus 5.5, GPT-5.6 Sol |

    Sizes are derived from price and model family, as explained in [How routing works](/modelhub/how-it-works/routing#step-1-sorting-models-into-tiers). Ordinary questions go to Small by default, so in a typical workplace most traffic lands on the cheapest model.

    Avoid reasoning-only models as your only option: they can spend their whole output budget thinking and return no answer.
  </Step>

  <Step title="Approve their emails">
    Nobody can sign in with an email code until their address is approved. This happens before, and separately from, organization membership.

    In **Settings** → **Platform access** (visible to super admins only), add either:

    | Entry | Effect |
    | - | - |
    | `priya@acme.com` | That one person can sign in |
    | `@acme.com` | Anyone with an acme.com address can sign in |

    An explicit decision about one address beats the domain rule both ways. Employees who try to sign in before approval are recorded as pending requests you can approve. See [Platform access](/agenthub/settings/platform-access).

    If your admins are not super admins, ask your organization's super admins to do this step.
  </Step>

  <Step title="Add them as Users">
    In **Settings** → **User Management**, type each email on its own line in the **Users** box ("ModelHub only.") and click **Save changes**. See [User Management](/agenthub/settings/user-management).

    | Box | Database role | Gets |
    | - | - | - |
    | **Admins** | Admin | ModelHub and AgentHub, settings, can invite people. Only a super admin can change this box. |
    | **AI Builders** | Editor | ModelHub and AgentHub |
    | **Users** | Viewer | ModelHub only |

    The **Save summary** shows one line per email:

    | Result | Meaning |
    | - | - |
    | **Added** "Added as User." | The person already had an account and is now a member. |
    | **Invited** "Invited as User. Invite link: …" | An invite was created. Copy the link and send it to them. |
    | **Needs action** "Needs platform access first — …" | The email is not approved. Approve it in Platform access, then save again to create the invite. |
    | **Error** | For example "Not a valid email address — skipped." or "Listed in more than one box — left unchanged." |

    <Warning>
      CorePillar does not email invites. Share each invite link yourself. Links expire after 7 days. The token works on either hub, so you can send the ModelHub form of the link: `https://modelhub.corepillar.ai/invite/` followed by the token.
    </Warning>

    The older **Members** settings page now redirects to User Management. Roles are explained in [Roles and permissions](/agenthub/settings/roles-and-permissions) and [Members](/agenthub/settings/members).
  </Step>

  <Step title="Hand out the right URL">
    | Who | URL | What they get |
    | - | - | - |
    | Employees (Users) | `https://modelhub.corepillar.ai` | Chat and their own AI Usage. Nothing else. |
    | Admins and AI Builders | `https://pillarforge.corepillar.ai` | AgentHub. They can use ModelHub too. |

    If a User opens an AgentHub link, they see "Your account has ModelHub access only" with a **Go to ModelHub** button.
  </Step>

  <Step title="Check it works">
    Ask one employee, or a test account approved and added as a User, to:

    1. Sign in at ModelHub with an email code.
    2. Confirm the sidebar shows only **New chat**, **Chat**, **AI Usage** and their history, with no **Settings**.
    3. Send a message and see an answer with a report card.
    4. Open **AI Usage** and see **My AI usage**.
  </Step>
</Steps>

## Using Okta SSO instead of email codes

If your organization signs in with Okta, configure it in [SSO (Okta)](/agenthub/settings/sso-okta). On first sign-in, each employee's membership is created automatically with a role from their Okta groups or your default SSO role. **Set the default role to Viewer** so employees arrive as Users. If you enforce SSO, the email-code option disappears for your members.

The SSO button on the sign-in page only appears for emails that are already members of, or have a pending invite to, your organization.

## Things to know before you start

* **Approve and invite together.** An approved email with no invite can still sign in. With no organization to join, that person is sent to onboarding, where they can create an organization of their own. Invite people as you approve them.
* **The role matters on AgentHub, not ModelHub.** On ModelHub an Admin and a User see the same chat. What differs is whether they can open AgentHub and see settings and organization-wide usage. See [Access control](/modelhub/admin/access-control).
* **Organization-wide usage.** Owners, Admins and super admins see an **Organization | Just me** toggle on the AI Usage page, on both hubs, including the itemised log of removed personal data. Users only ever see their own numbers.
* **Encrypted history (optional).** Super admins can turn on end-to-end encryption of chat history from **Settings** → **General**. Employees then need to set a passphrase to reopen their own chats. Tell them before you turn it on.
* **Some features use CorePillar's platform key.** Conversation titles, the routing second opinion and the AI layer of privacy screening run on a small model billed to CorePillar, not to your keys. If that key is unavailable, those steps are skipped: titles fall back to the first line of the message, routing uses the score alone, and screening uses its pattern layers only.

## Removing someone

See [Access control](/modelhub/admin/access-control#removing-someone). In short: remove them in **User Management**, and remove their address from the **Platform access** allowlist if it is listed there.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.