1. Authenticate with GitHub
$horus auth login --github
This will open your browser to authorize with GitHub. After authorization, you'll receive an API key.
2. Save Your API Key
Save the API key to ~/.horus/auth.json:
$mkdir -p ~/.horus
$echo '{"api_key": "YOUR_KEY_HERE"}' > ~/.horus/auth.json
3. Create Your Package
Use horus new to create a new package with the manifest file:
$horus new my-package --rust
This creates a new package directory with a horus.yaml manifest file:
name: my-package
version: 0.1.0
description: Your package description
author: your-github-username
license: MIT
language: rust
horus_id: null
dependencies:
- horus@0.1.0
The horus_id will be auto-generated on first publish.
Adding Documentation
Create a docs/ folder in your package root to include documentation:
$mkdir docs
The docs/ folder should only contain Markdown (.md) files. Common documentation files include:
docs/getting-started.mddocs/api.mddocs/examples.md
4. Publish!
$horus pkg publish
The publish command will interactively guide you through:
- Categories - Select package categories (Navigation, Vision, Perception, Control, Manipulation, Communication, Simulation, App, Utilities)
- Documentation - Choose to link external docs or bundle local
docs/ folder - Source Repository - Add link to your GitHub/GitLab repository (auto-detected if in git repo)
Your package will be uploaded to the registry and appear in the marketplace!
Package Requirements
- Valid
horus.yaml manifest file - Authenticated with GitHub OAuth
- Unique package name (not already published)
- Package tarball (.tar.gz) containing all source files
Documentation & Source Links
During horus pkg publish, you'll be prompted to add:
- Documentation (optional):
- External: Link to docs site (GitHub Pages, Read the Docs, etc.)
- Local: Bundle Markdown files from
docs/ folder
- Source Repository (optional): Link to GitHub/GitLab (auto-detected from git remote)