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

# Manage Organizations

## Overview

Organizations in Packmind help you group your standards, commands, skills, and packages by team or project. Each user can belong to multiple organizations and switch between them as needed.

When you first sign up for Packmind, you'll create your first organization. You can create additional organizations at any time.

## Creating a New Organization

You can create a new organization at any point while using Packmind:

1. Click on the **organization name** in the top-left corner of the screen
2. Select **New organization** from the dropdown menu
3. Enter a name for your organization
4. Click **Create** to confirm

Your new organization will be created and automatically selected as your active organization.

## Switching Between Organizations

To switch to a different organization:

1. Click on the **organization name** in the top-left corner of the screen
2. Select the organization you want to switch to from the dropdown menu

The application will immediately switch to the selected organization, and you'll see that organization's standards, commands, packages, and settings.

<Info>
  All your work (standards, commands, skills, and packages) is
  organization-specific. When you switch organizations, you'll see different
  content and settings.
</Info>

## Organization Settings

Organization administrators have access to additional settings for managing their organization. See the following guides for specific administrative tasks:

* [Managing Users](/administration/manage-users) - Invite users and manage roles
* [Manage AI Agents](/administration/manage-ai-agents) - Configure AI agent access
* [LLM Configuration](/administration/llm-configuration) - Configure language models
* [Marketplace Governance](#marketplace-governance) - Curate Git repositories as Packmind-governed marketplaces

<Info>
  Only users with **Admin** privileges can access organization settings. If you
  need administrative access, contact your organization administrator.
</Info>

## Marketplace Governance

Marketplace governance lets organization administrators curate a trusted set of plugin sources for their members. Once a marketplace is linked, every member of the organization can browse the marketplace and the plugins it exposes; only administrators can link or unlink.

### What is a marketplace?

A **marketplace** is a Git repository registered at the organization level that exposes a marketplace descriptor. The descriptor declares the plugins the repository offers, and the coding agent it targets — **Claude Code** or **GitHub Copilot** — follows from which path holds it:

| Descriptor path | Agent |
| - | - |
| `.claude-plugin/marketplace.json` | Claude Code |
| `marketplace.json` (root) | Claude Code |
| `.github/plugin/marketplace.json` | GitHub Copilot |

A repository targets one agent or the other, never both. Packmind probes those paths in the order above and the first one it finds decides the marketplace's type, so the type is never guessed from the descriptor's contents and you don't pick it yourself when linking.

Marketplaces are governance-only constructs:

* **Admins** link and unlink marketplaces, and monitor their health.
* **Members** browse the enrolled marketplaces and discover the plugins they expose.

<Info>
  Marketplaces are **organization-scoped**. There is no per-user marketplace
  link — every member of the organization sees the same enrolled marketplaces.
</Info>

<Note>
  A repository linked as a marketplace is kept separate from repositories used
  for standard skill/command distribution. The same `(owner, repo)` pair cannot
  be linked as both a marketplace and a standard distribution target.
</Note>

### Linking a marketplace

Linking is an **admin-only** action. The denial is enforced server-side — hiding the UI is not sufficient, and non-admin API callers receive an HTTP 403.

Marketplaces are linked through one of your organization's connected Git providers, so the repository can live behind authentication (private GitHub/GitLab org, internal SCM, etc.).

1. From the organization sidebar, open **Marketplaces** and click **Link a marketplace**.
2. In the drawer, pick one of your organization's connected Git providers.
3. Select the repository that hosts the marketplace descriptor.

Packmind validates that the chosen repository exposes a valid descriptor before persisting the link, and records which agent it targets.

<Warning>
  Linking is restricted to organization administrators. Members who attempt to
  link via the API receive an HTTP 403 response.
</Warning>

### Health state semantics

Every linked marketplace carries a health **state** that Packmind refreshes via a periodic reconciliation job. The current state is visible on each row of the marketplace list.

| State | Meaning |
| - | - |
| **healthy** | The reconciliation job successfully re-fetched and re-validated the descriptor, and it still matches the one captured at link time. |
| **drift** | The reconciliation job successfully re-fetched and re-validated the descriptor, but it has changed since the last run (plugins added, removed, edited). |
| **unreachable** | The reconciliation job could not reach the repository or could not retrieve a parseable descriptor (network failure, repository removed, descriptor deleted). |
| **bad\_format** | The descriptor was reachable but is missing or cannot be parsed — the marketplace contract is broken and an admin must fix it. |

<Info>
  The initial state at link time is **healthy**. The state is refreshed on a
  periodic schedule (default: every 30 minutes) and the `lastValidatedAt`
  timestamp on the marketplace row is updated on every run.
</Info>

<Tip>
  When a marketplace appears as **drift**, review the new descriptor before
  relying on the marketplace — plugins may have been added, removed, or modified
  upstream.
</Tip>

### Unlinking

Unlinking is also an **admin-only** action. It severs Packmind governance over the marketplace but **never** touches the Git repository.

When you unlink a marketplace:

* The marketplace record is soft-deleted on the Packmind side.
* The underlying marketplace-typed `GitRepo` record is soft-deleted alongside it.
* The Git repository, its branches, and any in-flight pull requests are **left untouched** — Packmind performs no GitHub/GitLab mutation.

<Warning>
  Unlinking is a Packmind-side governance action only. If you need to remove the
  underlying repository, branches, or pull requests, do that on the Git platform
  itself — Packmind will not do it for you.
</Warning>

To unlink:

1. Open the marketplace row in the **Marketplaces** list.
2. Click **Unlink** and confirm the action in the dialog.

### Errors and resolutions

The table below maps the most common errors surfaced during link/unlink to the action that resolves them.

| Error | When it appears | What to do |
| - | - | - |
| `MarketplaceAlreadyLinkedError` | `The marketplace {owner}/{repo} has already been linked to your organization` (HTTP 409). | Open the existing marketplace from the list instead of linking again. Unlink the existing entry first if you intend to re-link it. |
| `MarketplaceDescriptorNotFoundError` | `No marketplace descriptor found in repository {owner}/{repo}. Looked for: .claude-plugin/marketplace.json, marketplace.json, .github/plugin/marketplace.json` (HTTP 400). | None of the descriptor paths above hold a file. Add one — `.claude-plugin/marketplace.json` for Claude Code, `.github/plugin/marketplace.json` for GitHub Copilot — then retry. Verify you selected the correct branch. |
| `UnknownMarketplaceDescriptorError` | `No registered marketplace descriptor parser recognised the provided content` (HTTP 400). | The descriptor's contents match neither the Claude Code nor the GitHub Copilot format. Check it against the schema for the agent you are targeting. |
| `MarketplaceDescriptorParseError` | A parser claimed the descriptor but failed to parse or validate it (HTTP 400). | Inspect the descriptor for malformed JSON or missing required fields, fix it on the repository side, then retry. |
| `MarketplaceNotFoundError` | `Marketplace with id "{marketplaceId}" was not found` (HTTP 404). | The marketplace was already unlinked or never existed. Refresh the list to see the current state. |

<Note>
  The contract message *"The marketplace {owner}/{repo} has already been linked
  to your organization"* is stable and safe to surface verbatim to end users.
</Note>


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