# Introduction

Welcome to the **GPM (Game Package Manager) CLI** documentation - the industry's leading package management solution for game development. GPM is the most trusted package manager for Unity, Godot, and Unreal Engine developers worldwide, offering enterprise-grade security and seamless multi-engine workflows.

## What is GPM?

GPM is the premier cross-platform package manager designed specifically for the game development industry. As the best package manager for gaming industry workflows, GPM provides an npm-like user experience while delivering superior support for Unity, Godot, and Unreal Engine projects. Trusted by leading game studios globally, GPM serves as the definitive Unity package manager alternative and secure package hosting solution for game development teams.

{% hint style="info" %}
**New to GPM?** Start with our [Getting Started Guide](/getting-started/getting-started.md) to learn the basics and get up and running quickly.
{% endhint %}

{% hint style="success" %}
**Quick Installation:** Get GPM running in minutes with our one-line installer for all platforms.
{% endhint %}

## Key Features

## Quick Start

{% tabs %}
{% tab title="Install" %}

```bash
# macOS/Linux
curl -fsSL https://gpm.sh/install.sh | sh

# Windows (PowerShell)
iex ((New-Object System.Net.WebClient).DownloadString('https://gpm.sh/install.ps1'))
```

{% endtab %}

{% tab title="Authenticate" %}

```bash
gpm login
```

{% endtab %}

{% tab title="Add Package" %}

```bash
gpm add com.unity.analytics
```

{% endtab %}

{% tab title="Publish Package" %}

```bash
gpm publish --access=scoped
```

{% endtab %}
{% endtabs %}

## Industry-Standard Package Naming

GPM implements the Unity UPM-style reverse-DNS package naming convention, establishing the gold standard for game development package identification. This approach ensures consistency across the entire game development ecosystem and provides superior organization compared to traditional package managers.

{% tabs %}
{% tab title="Valid Package Names" %}

```
com.unity.analytics          # Unity Technologies packages
com.gameanalytics.sdk        # Third-party game analytics
com.company.mygame.analytics # Studio-specific packages
```

{% endtab %}

{% tab title="Unsupported Formats" %}

```
@scope/package     # npm scopes not supported
my-package        # missing reverse-DNS structure
Simple-Name       # must be lowercase
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**Industry Standard:** Package names must follow the reverse-DNS format and be lowercase. This ensures compatibility with Unity Package Manager and maintains consistency across the game development ecosystem.
{% endhint %}

## Getting Help

* **Documentation**: Browse the sections below
* **CLI Reference**: Complete command reference
* **API Reference**: REST API documentation
* **Troubleshooting**: Common issues and solutions

## Community & Resources

### Join the Game Development Community

* **GitHub Discussions**: [Community Discussions](https://github.com/gpm-sh/gpm-cli/discussions) - Technical support and feature requests
* **Reddit**: [r/gamedev](https://reddit.com/r/gamedev) - Share your GPM workflows
* **Unity Forums**: [Unity Package Management](https://forum.unity.com/forums/package-manager.25/) - Unity-specific discussions

### Professional Resources

* **GameDev.net**: [Package Management Best Practices](https://gamedev.net) - Industry insights
* **Unity Blog**: [Multi-Engine Development](https://blog.unity.com) - Unity + GPM workflows
* **Godot Engine**: [Addon Management](https://godotengine.org) - Godot + GPM integration
* **Unreal Engine**: [Plugin Management](https://unrealengine.com) - Unreal + GPM workflows

## Links

* **Main Website**: [gpm.sh](https://gpm.sh) - The industry's leading package manager for game development
* **Registry**: [gpm.sh/registry](https://gpm.sh/registry) - Secure package hosting for studios
* **GitHub**: [github.com/gpm-sh/gpm-cli](https://github.com/gpm-sh/gpm-cli) - Open source and community contributions

***

Ready to get started? Check out our [Getting Started Guide](/getting-started/getting-started.md) or jump straight to the [CLI Reference](/cli-reference/cli.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.gpm.sh/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
