Skip to main content

A dependency package manager for Godot plugins, like uv/npm/cargo

Project description

English 简体中文


GDPM — Godot Dependency Package Manager

A dependency package manager for Godot plugins, like uv/npm/cargo.

CI PyPI Python uv License


Features

  • One command installgdpm add limbo-ai instead of manual downloads
  • Dependency management — Automatic dependency resolution
  • Lock filegdpm.lock ensures reproducible installs across team and CI
  • Godot Asset Store — Direct integration with the official store API
  • Version constraints — Support for ^, ~, >= semver syntax
  • Template detection — Automatically identifies project templates vs addons
  • Godot compatibility — Checks plugin compatibility with your Godot version
  • Godot engine management — Install, manage, and switch Godot versions
  • Global cache — Shared cache across projects, saves disk space
  • Shell completion — Tab completion for zsh, bash, fish

Installation

pip install godot-gdpm

Quick Start

# Initialize a project
gdpm init

# Create a new project
gdpm create my-game

# Add plugins
gdpm add limbo-ai
gdpm add phantom-camera
gdpm add --dev gdunit4

# Check status
gdpm status

# Sync addons (e.g., after git clone)
gdpm sync

Commands

Project

Command Description
gdpm init Initialize a new gdpm project
gdpm create [name] Create a new Godot project (interactive)
gdpm sync Sync addons/ to lock file state
gdpm lock Generate or update lock file
gdpm list List installed plugins
gdpm status Show plugin status and available updates

Dependencies

Command Description
gdpm add <plugin> Add plugins to the project
gdpm remove <plugin> Remove plugins
gdpm update Update plugins to newer versions
gdpm search <query> Search Godot Asset Store
gdpm info <plugin> Show plugin details

Engine Management

Command Description
gdpm godot list List installed Godot engines
gdpm godot list -r List available versions from GitHub
gdpm godot install <ver> Install a Godot engine
gdpm godot uninstall <ver> Uninstall a Godot engine
gdpm godot add <path> Add a local Godot engine
gdpm godot remove <name> Remove a local engine
gdpm godot use <id> Set project engine
gdpm godot info Show current engine info
gdpm godot open Open Godot editor
gdpm godot default <id> Set default engine

Cache

Command Description
gdpm cache info Show cache size and location
gdpm cache clean Clean all cached files

Import/Export

Command Description
gdpm export Export plugins to zip archive
gdpm import Import plugins from zip archive

Configuration

gdproject.toml

[project]
name = "my-game"
version = "0.1.0"
godot = ">=4.7.0"
license = "MIT"

[dependencies]
limbo-ai = ">=1.5.0"
phantom-camera = "^4.3.0"

[dev-dependencies]
gdunit4 = "^1.0.0"

[scripts]
test = "godot --headless --script res://tests/run_tests.gd"

Version Constraints

Syntax Meaning Example
1.5.0 Exact version limbo-ai = "1.5.0"
^1.5.0 Compatible update >=1.5.0, <2.0.0
~1.5.0 Patch update >=1.5.0, <1.6.0
>=1.0.0 Minimum version >=1.0.0
* Any version limbo-ai = "*"

How It Works

gdpm uses the official Godot Asset Store API to discover and download plugins. It does not require a custom registry.

gdpm add limbo-ai
  → Search Godot Asset Store API
  → Download plugin zip
  → Extract to addons/
  → Write tag.gdpm for tracking
  → Update gdproject.toml + gdpm.lock

Plugin Tracking

gdpm uses tag.gdpm files to track which addon directories belong to which plugin.

addons/
  cogito/
    tag.gdpm          → store+philip-drobar/cogito
    plugin.cfg
    ...
  input_helper/
    tag.gdpm          → store+philip-drobar/cogito
    ...

Engine Management

gdpm can manage Godot engine installations:

# Install Godot 4.7
gdpm godot install 4.7

# Install C# version
gdpm godot install 4.7 --csharp

# Add local engine (e.g., Steam)
gdpm godot add "/path/to/Godot.app"

# Set engine for current project
gdpm godot use gdpm-godot@4.7-stable

# Open Godot editor
gdpm godot open

CI/CD Integration

# GitHub Actions
- name: Install Godot plugins
  run: |
    pip install godot-gdpm
    gdpm sync --frozen

Development

# Clone the repository
git clone https://github.com/Abyss-PlayerEG/godot-gdpm.git
cd godot-gdpm

# Install dependencies
uv sync

# Run checks
python scripts/check.py

# Build executable
python scripts/build.py

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/new-feature)
  3. Commit your changes (git commit -m "feat: add new feature")
  4. Push to the branch (git push origin feat/new-feature)
  5. Open a Pull Request

License

MIT License — see LICENSE for details.

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

godot_gdpm-0.1.0b1.tar.gz (179.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

godot_gdpm-0.1.0b1-py3-none-any.whl (84.5 kB view details)

Uploaded Python 3

File details

Details for the file godot_gdpm-0.1.0b1.tar.gz.

File metadata

  • Download URL: godot_gdpm-0.1.0b1.tar.gz
  • Upload date:
  • Size: 179.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for godot_gdpm-0.1.0b1.tar.gz
Algorithm Hash digest
SHA256 6a56addd575d159a191d7a7570eb81dda1b703c9d1152fb2f920d0cc436af0f5
MD5 db52c85ef311446612a99bf9c1cb6548
BLAKE2b-256 c709f130a05677c7fd866f9ab726f2c01a90a04f05672243c58a1e12f2cacfcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_gdpm-0.1.0b1.tar.gz:

Publisher: publish.yml on Abyss-PlayerEG/godot-gdpm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file godot_gdpm-0.1.0b1-py3-none-any.whl.

File metadata

  • Download URL: godot_gdpm-0.1.0b1-py3-none-any.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for godot_gdpm-0.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 ed64e44325bffee065b68f30eae73c7be130fb4eaff7455814b00b0f71623740
MD5 1d08afeeef6de2a30701ddc2dcb60f89
BLAKE2b-256 67f9fa73ce51aa87c2218d5aecaa5c5a7f3f1076988c3e49cbf18e61c8ea8417

See more details on using hashes here.

Provenance

The following attestation bundles were made for godot_gdpm-0.1.0b1-py3-none-any.whl:

Publisher: publish.yml on Abyss-PlayerEG/godot-gdpm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page