Skip to content

CLI Commands

Every command supports these global flags:

FlagEffect
-y, --yesAuto-confirm all prompts
--verboseEnable verbose output
--quietSuppress non-essential output
--jsonOutput structured JSON (see JSON Output)

venpm install

Install a plugin and its dependencies.

Usage

venpm install <plugin> [options]

Arguments

ArgumentDescription
pluginPlugin name as listed in a configured repo

Options

FlagDescription
--version <ver>Install a specific semver version (pins in lockfile)
--from <repo>Install from a named repo (when multiple repos have the same plugin)
--local <path>Symlink a local directory instead of fetching
--gitForce git clone (even if tarball is available)
--tarballForce tarball download
--no-buildSkip Vencord rebuild after install
--rebuildForce rebuild (overrides never config)

Examples

bash
venpm install channelTabs
venpm install channelTabs --version 0.1.0
venpm install channelTabs --from kamaras-plugins
venpm install myPlugin --local ./plugins/myPlugin --no-build

Exit Codes

CodeMeaning
0Plugin installed successfully
1Plugin not found, resolution failure, or fetch error

venpm uninstall

Remove an installed plugin.

Usage

venpm uninstall <plugin>

Behavior

Checks for reverse dependencies — if other installed plugins depend on the one being removed, venpm warns you and asks for confirmation. Removes the plugin directory from <vencord>/src/userplugins/ and updates the lockfile.

Exit Codes

CodeMeaning
0Plugin removed
1Plugin not installed, or user cancelled

venpm update

Update installed plugins to latest versions.

Usage

venpm update [plugin]

Without arguments, updates all non-pinned, non-local plugins. With a plugin name, updates only that plugin.

Behavior

Fetches fresh indexes from all repos, compares installed versions against latest, and re-fetches updated plugins. Pinned plugins (installed with --version) and local plugins are skipped.

Exit Codes

CodeMeaning
0Update complete (even if nothing was updated)
1Plugin not found or fetch error

venpm list

List installed plugins.

Usage

venpm list

Output Format

channelTabs@0.1.0       [kamaras-plugins] (git)
settingsHub@0.1.0       [kamaras-plugins] (git)
myPlugin@local          [local] (local) pinned

Each line shows: name@version, repo name, fetch method, and flags (pinned, local).

Exit Codes

CodeMeaning
0Always

Search for plugins across all configured repos.

Usage

venpm search <query>

Behavior

Matches query against plugin names and descriptions in all cached indexes. Results show name, version, description, and repo name.

Exit Codes

CodeMeaning
0Always (empty results are not errors)

venpm info

Show detailed information about a plugin from the index.

Usage

venpm info <plugin>

Output

Shows version, description, authors, license, dependencies, optional dependencies, Discord/Vencord version ranges, source types, and available versions.

Exit Codes

CodeMeaning
0Plugin found
1Plugin not found in any repo

venpm repo

Manage plugin repository sources.

venpm repo add

venpm repo add <url> [--name <alias>]

Add a plugin repository. The URL must point to a valid plugins.json. If --name is not provided, venpm derives a name from the URL hostname.

venpm repo remove

venpm repo remove <name>

Remove a repository by name.

venpm repo list

venpm repo list

List all configured repositories (name and URL).

Exit Codes

CodeMeaning
0Operation succeeded
1Repo not found (remove), or URL invalid (add)

venpm config

Read and write configuration values.

venpm config set

venpm config set <key> <value>

Set a config value using dotted key paths. Values are type-coerced: null, true, false are parsed as their JSON types; strings and numbers are detected automatically.

Examples:

bash
venpm config set vencord.path /home/you/src/Vencord
venpm config set rebuild always
venpm config set discord.restart never
venpm config set discord.binary null

venpm config get

venpm config get <key>

Read a config value by dotted key path.

venpm config path

venpm config path

Print the config directory path.

Exit Codes

CodeMeaning
0Operation succeeded
1Invalid key or value

venpm create

Scaffold a plugin repo or plugin.

Usage

venpm create <path> [options]

Options

FlagDescription
--tsxUse .tsx entry point (React support)
--cssInclude style.css
--nativeInclude native.ts (Node.js / Electron main)

Behavior

Walks up the directory tree from <path> looking for a plugins.json with the venpm schema. If found, scaffolds a plugin. If not found, scaffolds a repo.

Examples

bash
venpm create ~/src/my-plugins                           # scaffold a repo
venpm create ~/src/my-plugins/plugins/myPlugin          # scaffold a plugin
venpm create ~/src/my-plugins/plugins/myPlugin --tsx --css

Exit Codes

CodeMeaning
0Scaffold created
1Path already exists, or filesystem error

venpm rebuild

Rebuild Vencord and restart Discord.

Usage

venpm rebuild

Runs pnpm build in the Vencord source tree, copies the output to Discord's load path (~/.config/Vencord/dist/), and optionally restarts Discord based on the discord.restart config setting.

Exit Codes

CodeMeaning
0Build succeeded
1Vencord path not configured, pnpm not found, or build failed

venpm doctor

Check environment health.

Usage

venpm doctor

Checks

CheckWhat it verifies
gitgit binary available
pnpmpnpm binary available
VencordSource path configured or auto-detected
DiscordDiscord binary found
ReposNumber of configured repos
venpmCurrent version

Exit Codes

CodeMeaning
0Always (issues are reported, not treated as errors)

venpm validate

Validate a plugin index file against the JSON schema.

Usage

venpm validate [path] [options]

Arguments

ArgumentDescription
pathPath to plugins.json (defaults to ./plugins.json)

Options

FlagDescription
--strictAlso check dependency cross-references and probe tarball URLs

Examples

bash
venpm validate plugins.json
venpm validate plugins.json --strict

Exit Codes

CodeMeaning
0Valid
1Schema errors or strict-mode failures