Skip to content

ToolBoxV2 Registry CLI Reference

SHARED_CONTEXT

Du arbeitest im ToolBoxV2 Doc-Writer System. Deine einzige Wahrheitsquelle ist der Code. Nie etwas erfinden oder aus alten Docs übernehmen ohne Code-Verifikation.

CODE-REFERENZ REGEL: Jeden Claim mit belegen. Format: <!-- verified: <dateiname>::<klasse_oder_funktion> -->


Registry CLI Dokumentation

WARNUNG: Diese Dokumentation basiert ausschließlich auf dem implementierten Code in cli_registry.py. Keine Funktion die dort nicht existiert wird dokumentiert.


Übersicht

Die Registry CLI ermöglicht: - Server Management: Start/Stop/Status - Package Operations: Search, List, Info, Download, Versions - Publishing: Create, Upload, Delete, Yank - Authentication: Login, Logout, WhoAmI - Admin: Publisher Management


Server Commands

Start Registry Server

tb registry server start [OPTIONS]

OPTIONS:
  --host TEXT         Host to bind (default: 127.0.0.1)
  --port INTEGER      Port to bind (default: 4025)
  -b, --background    Run in background
  --reload            Enable auto-reload

Beispiel:

tb registry server start --host 0.0.0.0 --port 4025 --background


Stop Registry Server

tb registry server stop

Registry Server Status

tb registry server status

Zeigt: - Status (running/stopped) - PID - Host & Port


Package Commands

Search Packages

tb registry search QUERY [OPTIONS]

OPTIONS:
  --limit INTEGER    Max results (default: 50)
  -r, --registry-url TEXT   Registry URL

Beispiel:

tb registry search discord --limit 10

Ausgabe:

┌─────────────────────────────────────────────────────────┐
│  Name                  Version    Publisher    Downloads│
├─────────────────────────────────────────────────────────┤
│  toolboxv2-discord    1.2.0      simplecore    1,234    │
│  ...                                                    │
└─────────────────────────────────────────────────────────┘


List Packages

tb registry list [OPTIONS]

OPTIONS:
  --type TEXT         Filter: mod, library, artifact
  --sort TEXT         Sort by: name, downloads, recent (default: name)
  --limit INTEGER     Max results (default: 50)
  -r, --registry-url TEXT   Registry URL

Beispiel:

# Alle mods nach Downloads sortiert
tb registry list --type mod --sort downloads


Package Info

tb registry info PACKAGE [OPTIONS]

OPTIONS:
  --versions          Show version history
  -r, --registry-url TEXT   Registry URL

Beispiel:

tb registry info CloudM --versions

Zeigt: - Name, Version, Visibility - Publisher, License - Homepage, Repository - Description, Keywords - Version History (mit --versions)


Download Package

tb registry download PACKAGE [OPTIONS]

OPTIONS:
  --version TEXT      Specific version (default: latest)
  -o, --output DIR    Output directory (default: .)
  -r, --registry-url TEXT   Registry URL

Beispiel:

# Download latest
tb registry download CloudM

# Specific version
tb registry download CloudM --version 2.0.0 --output ./mods/


Package Versions

tb registry versions PACKAGE [OPTIONS]

OPTIONS:
  -r, --registry-url TEXT   Registry URL

Beispiel:

tb registry versions CloudM

Ausgabe:

┌────────────────────┬───────────────────────┬────────────┬──────────┐
│ Version            │ Published             │ Downloads  │ Status   │
├────────────────────┼───────────────────────┼────────────┼──────────┤
│ 2.0.0              │ 2024-01-15            │ 500        │ Active   │
│ 1.5.0 (YANKED)     │ 2023-12-01            │ 200        │ YANKED   │
└────────────────────┴───────────────────────┴────────────┴──────────┘


Publishing Commands

Publish Package

tb registry publish PACKAGE [OPTIONS]

OPTIONS:
  --create            Create new package
  --upload            Upload new version
  --visibility TEXT   Set: public, private, unlisted
  -m, --metadata FILE Path to metadata JSON
  -r, --registry-url TEXT   Registry URL

Metadaten JSON:

{
  "name": "mein-mod",
  "display_name": "Mein Mod",
  "package_type": "mod",
  "visibility": "unlisted",
  "description": "Ein tolles Mod",
  "readme": "README.md",
  "homepage": "https://github.com/user/repo",
  "repository": "https://github.com/user/repo",
  "license": "MIT",
  "keywords": ["toolbox", "mod"]
}

Beispiel:

# Neues Paket erstellen
tb registry publish ./mein-mod --create --metadata meta.json

# Version hochladen
tb registry publish ./mein-mod --upload --metadata meta.json

# Sichtbarkeit ändern
tb registry publish mein-mod --visibility public


Upload with Diff Support

tb registry upload PACKAGE -m METADATA [OPTIONS]

OPTIONS:
  -m, --metadata FILE       Path to metadata JSON (REQUIRED)
  --diff-threshold INTEGER Max diff ratio % (default: 50)
  --force-full             Force full upload (no diff)
  -r, --registry-url TEXT   Registry URL

Beispiel:

tb registry upload ./mein-mod.zip \\
  --metadata meta.json \\
  --diff-threshold 30

Ausgabe:

✅ Upload successful!
Type: DIFF
Uploaded: 45 KB / 200 KB
Saved: 155 KB (77.5%)
Diffed from: 1.0.0


Delete Package

tb registry delete PACKAGE [--force]

Beispiel:

# Mit Bestätigung
tb registry delete mein-mod

# Ohne Bestätigung
tb registry delete mein-mod --force


Yank Version

tb registry yank PACKAGE VERSION [OPTIONS]

OPTIONS:
  --reason TEXT       Reason for yanking
  --undo             Unyank (restore) the version

Beispiel:

# Version yanken
tb registry yank mein-mod 1.0.0 --reason "Security vulnerability"

# Version wiederherstellen
tb registry yank mein-mod 1.0.0 --undo


Authentication Commands

Login

tb registry login [-r REGISTRY_URL]

Nutzt CloudM.Auth für Authentifizierung: 1. Token wird von CloudM.Auth bezogen 2. Token wird mit Registry verifiziert 3. Token wird lokal gespeichert (~/.tb-registry/auth_token.txt)

Beispiel:

tb registry login


Logout

tb registry logout

Beispiel:

tb registry logout Logged out successfully


WhoAmI

tb registry whoami [-r REGISTRY_URL]

Zeigt aktuellen Benutzer: - User ID - Username - Email - Verified Status - Admin Status - Publisher ID


Admin Commands

Publisher Management

tb registry admin publisher ACTION [OPTIONS]

ACTIONS:
  list                List all publishers
  open                List pending publishers
  verify TARGET       Verify a publisher
  reject TARGET       Reject a publisher
  revoke TARGET       Revoke verification

OPTIONS:
  --target TEXT       Publisher ID
  --status TEXT       Filter: unverified, pending, verified, rejected
  --notes TEXT        Action notes / reason

Beispiel:

# Liste alle Publisher
tb registry admin publisher list

# Zeige ausstehende Anträge
tb registry admin publisher open

# Publisher verifizieren
tb registry admin publisher verify publisher_abc123

# Publisher ablehnen
tb registry admin publisher reject publisher_xyz789 --notes "Invalid repository"

# Verifizierung zurückziehen
tb registry admin publisher revoke publisher_abc123


Utility Commands

Health Check

tb registry health [-r REGISTRY_URL]

Beispiel:

tb registry health
✅ Registry is healthy: https://registry.simplecore.app


Global Options

Alle Commands akzeptieren:

-r, --registry-url TEXT   Registry URL (default: https://registry.simplecore.app)
-v, --verbose             Verbose output

Error Codes

Code Bedeutung
0 Erfolgreich
1 Fehler
130 Interrupted (Ctrl+C)

Troubleshooting

Authentication failed

# Prüfe ob eingeloggt
tb registry whoami

# Erneut einloggen
tb registry login

Package not found

# Prüfe Schreibweise
tb registry search mein-paket

# Prüfe Registry URL
tb registry list -r https://registry.simplecore.app

Upload fehlgeschlagen

# Mit verbose
tb registry upload ./mein-mod.zip --metadata meta.json -v

# Full Upload erzwingen
tb registry upload ./mein-mod.zip --metadata meta.json --force-full