MCPcopy Index your code
hub / github.com/WilliamVenner/gmpublisher

github.com/WilliamVenner/gmpublisher @2.12.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.12.2 ↗ · + Follow
1,118 symbols 1,737 edges 94 files 356 documented · 32% updated 3d ago2.12.2 · 2026-07-04★ 1,18372 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Download

⚙️ gmpublisher

A powerful and feature-packed Workshop publisher for Garry's Mod is finally here!

Click for downloads

Are you a developer? You may also like my VSCode GLua Enhanced extension!

📦 Installation

Windows and macOS

The easiest way to install is by downloading gmpublisher from the releases page.

Linux

You can usually use the provided ZIP file from the releases page.

  • Arch Linux users can install the application from the AUR via the package gmpublisher-bin.
  • Note: Other Linux users may need to install additional dependencies.

Tutorials

DanFMN - Fastest Way to Upload a Garry's Mod Addon To Workshop

DarkFated - GMPublisher Guide in Russian

Features

  • Doesn't depend on gmad.exe or gmpublish.exe
  • Publish & update your Workshop items
  • Extract, search and browse GMA files and installed addons
  • Bulk download & extract Workshop items and collections
  • Upload animated GIFs as your Workshop item's icon
  • Analyze which addons are taking up the most disk space using the addon size analyzer treemap
  • Supports legacy SteamPipe addons and old GMA versions
  • Works without an Internet connection
  • CLI interface
  • (Windows) .GMA file type association for quick extraction

Languages

English

French

German

Russian

Polish

Turkish

Portuguese (Brazil)

Spanish

Chinese

Dutch

Korean

Ukrainian

Want to translate gmpublisher to your language?

Requirements

Windows, macOS or Linux

Linux users may need to install additional dependencies.

Technical Stuff

  • The program makes heavy use of multithreading, and will work best on processors with a decent amount of cores.
  • Made using Rust (backend) and Svelte (frontend)
  • This is not an Electron app; this is a Tauri app. Big thanks to all the contributors to Tauri for their amazing work on finally killing Electron for good.
  • gmpublisher uses the fantastic steamworks-rs library for interfacing with the Steamworks SDK
  • The program is only about ~10 MB

Media

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Screenshot

Extension points exported contracts — how you extend this code

Searchable (Interface)
(no doc) [3 implementers]
src-tauri/src/search.rs
NTStringReader (Interface)
(no doc) [2 implementers]
src-tauri/src/util/stream.rs
NTStringWriter (Interface)
(no doc) [2 implementers]
src-tauri/src/util/stream.rs
ExtractGMAImmut (Interface)
(no doc) [1 implementers]
src-tauri/src/gma/extract.rs
ExtractGMAMut (Interface)
(no doc) [1 implementers]
src-tauri/src/gma/extract.rs

Core symbols most depended-on inside this repo

new
called by 175
src-tauri/src/transactions/mod.rs
as_ref
called by 35
src-tauri/src/util/path.rs
read
called by 30
src-tauri/src/gma/read.rs
write
called by 27
src-tauri/src/octopus.rs
error
called by 27
src-tauri/src/transactions/mod.rs
client
called by 23
src-tauri/src/steam/mod.rs
progress
called by 17
src-tauri/src/transactions/mod.rs
aborted
called by 16
src-tauri/src/transactions/mod.rs

Shape

Method 424
Class 366
Function 191
Enum 132
Interface 5

Languages

C++61%
Rust33%
TypeScript6%

Modules by API surface

src-tauri/lib/steam_api/public/steam/steamnetworkingtypes.h78 symbols
src-tauri/lib/steam_api/public/steam/steamclientpublic.h77 symbols
src-tauri/lib/steam_api/public/steam/steam_api_internal.h76 symbols
src-tauri/lib/steam_api/public/steam/isteammatchmaking.h41 symbols
src-tauri/lib/steam_api/public/steam/isteamremotestorage.h36 symbols
src-tauri/lib/steam_api/public/steam/steam_api_flat.h35 symbols
src-tauri/lib/steam_api/public/steam/isteamfriends.h33 symbols
src-tauri/lib/steam_api/public/steam/isteamnetworkingutils.h31 symbols
src-tauri/lib/steam_api/public/steam/isteamugc.h30 symbols
src-tauri/src/transactions/mod.rs27 symbols
src-tauri/src/appdata.rs26 symbols
src-tauri/src/search.rs24 symbols

For agents

$ claude mcp add gmpublisher \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact