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

# Install and update packs

> Add a pack to a project, keep it on the newest release and remove it.

## Add a pack

Run `graph pack add` from the project's root:

```bash theme={null}
graph pack add github
```

```text theme={null}
✓ ./.graph/packs/github
  note: installed github v1.0.0 from github/ in github.com/tylerdavis/graph-packs (project layer, ref v1)
```

Commit `.graph/packs/github/`, `.graph/packs.lock` and `.graph/config.toml`. The pack's tools are now in the catalog:

```bash theme={null}
graph tool show github__tool__git_log
```

To install from your own repository, pass its URL and the pack's directory:

```bash theme={null}
graph pack add github.com/acme/graph-packs --path deploys
```

## See what's installed

```bash theme={null}
graph pack list
```

```text theme={null}
github	project	v1.0.0	ref v1: v1.0.0	newest: v1.0.0
```

Each row shows the layer, the installed release, the newest release the `ref` allows and the newest release overall. The list also flags local edits, packs shadowed by another layer and release tags that moved since you installed them.

## Update

```bash theme={null}
graph pack update
```

```text theme={null}
✓ ok
  note: github: up to date at v1.0.0
```

Every pack moves to the newest release its `ref` allows. Name packs to update only those. A pack you edited is left alone unless you pass `--force`, which overwrites your edits.

## Move to a new major release

```bash theme={null}
graph pack update --major github
```

For each newer major, graph runs the pack's migration over your plans, agents and tools as a dry run, shows the changes and asks before applying them. It then moves the pack's `ref` to the new major. Pass `--yes` to accept every migration without asking, such as in CI.

## Remove a pack

```bash theme={null}
graph pack remove github
```

graph deletes the copy, its config entry and its `packs.lock` entry, and lists any of your files that still call the pack's items.

## Related guides

> **[Write a pack](/packs/guides/write-a-pack)**
>
> Scaffold, test and release a pack from your own repository.

> **[Test a tool](/tools/guides/test-a-tool)**
>
> Run any tool directly and see exactly what it returns.


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