Skip to main content

Official CLI for building, validating, and publishing Agent Zero skills to the ZeroForge marketplace

Project description

zforge

The official CLI for building, validating, and publishing AgentZero skills to the ZeroForge marketplace.

███████╗███████╗ ██████╗ ██████╗  ██████╗ ███████╗
╚══███╔╝██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██╔════╝
  ███╔╝ █████╗  ██║   ██║██████╔╝██║  ███╗█████╗
 ███╔╝  ██╔══╝  ██║   ██║██╔══██╗██║   ██║██╔══╝
███████╗██║     ╚██████╔╝██║  ██║╚██████╔╝███████╗
╚══════╝╚═╝      ╚═════╝ ╚═╝  ╚═╝ ╚═════╝ ╚══════╝

What is zforge?

zforge is a command-line tool for AgentZero skill developers. It helps you:

  • 🔐 Authenticate via GitHub — one-time browser login
  • 🏗️ Scaffold new skills from a standard template
  • Validate skills against the AgentZero SKILL.md standard
  • 📦 Build distributable skill packages
  • 🚀 Publish skills to the ZeroForge marketplace with verified attribution
  • 🧪 Test skill behaviour before release

Trust & Safety

zforge is fully open source (MIT licensed). Every line of code is publicly auditable:

👉 Source: github.com/colin-charles/zforge
👉 Author: colin-charles — hello@zero-forge.org
👉 PyPI: pypi.org/project/zforge

  • No telemetry or analytics collected
  • API key stored locally in ~/.zforge/config.json (never transmitted except to ZeroForge's own API)
  • All marketplace interactions go through ZeroForge's public API
  • Dependencies: typer and rich only — both widely trusted open-source libraries

Installation

pip install zforge

Or use the one-liner:

curl -fsSL https://zero-forge.org/install.sh | bash

Quick Start

# 1. Authenticate with GitHub (one-time setup)
zforge login

# 2. Create a new skill
zforge new my-skill

# 3. Validate your skill
zforge validate my-skill/

# 4. Build a distributable package
zforge build my-skill/

# 5. Publish to ZeroForge marketplace
zforge publish my-skill/

Commands

Command Description
zforge login Authenticate via GitHub (browser OAuth)
zforge login --manual Authenticate by pasting API key (interactive)
zforge login --token <key> Headless / CI / scripts no browser needed
ZFORGE_API_KEY=<key> zforge publish One-off publish no credentials saved
zforge whoami Show currently authenticated user
zforge new <name> Scaffold a new skill from template
zforge validate <dir> Validate skill against SKILL.md standard
zforge build <dir> Build a .zip skill package
zforge publish <dir> Publish skill to ZeroForge marketplace
zforge test <dir> Run skill tests
zforge hello Verify installation and show usage

Authentication

zforge login authenticates you via GitHub OAuth — no copy-paste required:

$ zforge login

  Opening browser for GitHub authentication...
  Waiting for callback on http://localhost:7391...

  [browser opens  click Authorize on GitHub]

    Authenticated as @your-handle
    API key saved to ~/.zforge/config.json

🔐 Security: Uses PKCE (OAuth 2.1) — your access_token is never exposed in the browser URL, never written to disk, and never logged in browser history.

Prefer manual setup? Use the --manual flag:

zforge login --manual
# Prompts you to paste your API key from zero-forge.org/profile/edit/

Check who you're logged in as:

$ zforge whoami
  Logged in as @your-handle

For CI/CD or agent environments, set the env var instead:

export ZFORGE_API_KEY=your-api-key
zforge publish my-skill/

Authentication is required before publishing. Skills published without a valid API key will be rejected.

How Certification Works

When you run zforge publish, the CLI automatically evaluates your skill quality using the APOL pipeline — an LLM-based judge that scores your SKILL.md across four dimensions:

KPI What is checked Weight
Task Specificity Are tasks described with precise, actionable detail? High
Example Quality Are examples concrete, realistic, and complete? High
Scope Accuracy Does the skill do what it says — no more, no less? Medium
Submission Ready Is the skill ready for production use? Gate

The publish flow

zforge publish my-skill/
  │
  ├── Auth check (API key required)
  │
  ├── Structural validation (required fields/sections)
  │
  ├── APOL quality scoring
  │     └── Score ≥ 0.80  →  CERTIFIED badge ✅  published immediately
  │
  └── Score < 0.80  →  You choose:

        A) Publish now as UNCERTIFIED
        B) Run APOL improvement pipeline

             B → LLM refines documentation (intent preserved)
               → Shows diff before overwriting
               → You confirm [Y/N]
               → Score ≥ 0.80 → CERTIFIED ✅

Your intent is always protected. The APOL pipeline only improves how your skill is documented — never what it does. You review every change before it is saved.

What CERTIFIED means

A CERTIFIED badge means the skill was independently scored at ≥ 0.80 by the APOL LLM judge. It is a quality signal, not just a compliance check.

An UNCERTIFIED skill is structurally valid and usable — it just hasn't passed the quality threshold yet.

Using as an AgentZero Skill

zforge ships as an installable AgentZero skill. To install it inside Agent Zero:

Install the zforge skill from zero-forge.org/start

See SKILL.md for the full Agent Zero skill instructions.

Requirements

  • Python 3.10+
  • typer >= 0.9.0
  • rich >= 13.0.0

Contributing

PRs welcome. Please validate your changes with zforge validate before submitting.

License

MIT — see LICENSE

Links

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

zforge-2.1.48.tar.gz (55.4 kB view details)

Uploaded Source

Built Distribution

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

zforge-2.1.48-py3-none-any.whl (58.4 kB view details)

Uploaded Python 3

File details

Details for the file zforge-2.1.48.tar.gz.

File metadata

  • Download URL: zforge-2.1.48.tar.gz
  • Upload date:
  • Size: 55.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for zforge-2.1.48.tar.gz
Algorithm Hash digest
SHA256 32fa8f14541984787eeb6894982bbb1f9a65c9eb9a1c2523d1b337aa7dfaca34
MD5 26c03d08d8f6b5ceb5c0b33ab8238544
BLAKE2b-256 952899887100180f2f02ff0fc937a4d5694e7805da3e16b392fd545cabe781d3

See more details on using hashes here.

File details

Details for the file zforge-2.1.48-py3-none-any.whl.

File metadata

  • Download URL: zforge-2.1.48-py3-none-any.whl
  • Upload date:
  • Size: 58.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for zforge-2.1.48-py3-none-any.whl
Algorithm Hash digest
SHA256 266bbf6da3d5a9bc32e610919f60f772bb9c70880616e3b91adf5861aca7ae07
MD5 1f0e0b7da7318f92d520d02b4b1330ac
BLAKE2b-256 e6b605f6ade65952903914f5a434d950749626f36469a024446cd78bcdf587c9

See more details on using hashes here.

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