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:
typerandrichonly — 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_tokenis 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.0rich >= 13.0.0
Contributing
PRs welcome. Please validate your changes with zforge validate before submitting.
License
MIT — see LICENSE
Links
- 🌐 Marketplace: zero-forge.org
- 💬 Community: zero-forge.org/zeroden
- 🚀 Get Started: zero-forge.org/start
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zforge-2.1.46.tar.gz.
File metadata
- Download URL: zforge-2.1.46.tar.gz
- Upload date:
- Size: 55.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e91ebd78af6f79cfb90c30b15b6b0e801e1795d919caf96d21f0f66eac295114
|
|
| MD5 |
9d19291e358e89c751d8540bb6ab1d49
|
|
| BLAKE2b-256 |
5bc2466afdd322a342e2a80539b17f044bc13ea23a9e0e6f5d475836a52c8b77
|
File details
Details for the file zforge-2.1.46-py3-none-any.whl.
File metadata
- Download URL: zforge-2.1.46-py3-none-any.whl
- Upload date:
- Size: 58.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecbe0457bf82387b46c431cd8fe46ca9e6eef2a912ae11c0d928d72b2c6d1349
|
|
| MD5 |
b2a727bc033af294b636cdbd387137e3
|
|
| BLAKE2b-256 |
14c76451f6b722ba78fdf78836f48b1fe8252cd546886b8c07636d252725c944
|