No description
- Rust 78.6%
- Nushell 17.6%
- Shell 3.7%
git_authed and git_authenticated read FORGE_TOKEN from env, but the env is empty in any shell that didn't source init.sh/env.nu (sudo -i non-interactive, cron, fresh subshells). Without a token they emit a git credentials prompt that breaks non-interactive flows like lab skills sync over SSH. Add a third fallback step that reads [forge].token from hero_cfg.toml under PATH_ROOT (or HOME/hero). The file is already written by lab user init, so the token is always present after the first successful init regardless of whether env.nu was sourced. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| .hero | ||
| _archive | ||
| _beta | ||
| agents/default | ||
| claude | ||
| crates | ||
| docs | ||
| hero_os_architecture | ||
| howto | ||
| knowledge | ||
| meetingnotes | ||
| nutools | ||
| prompts | ||
| research/memory | ||
| scripts | ||
| servers | ||
| skills | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
Hero Skills
Claude Code skills and the lab build orchestrator for the Hero stack.
What is lab?
lab is a Cargo-native Hero build orchestrator. It discovers binary targets, skips unchanged ones via fingerprinting, copies built binaries to ~/hero/bin, manages Forgejo repos, syncs secrets via hero_proc, and runs AI agents.
lab [flags] — build binaries in the current repo
lab build [REPO] [flags] — find/clone a named repo then build it
lab user init — install Rust + nushell, write hero_cfg.toml, configure shell
lab install core — full install (AI tools, hero_proc, ...)
lab repo <verb> — Forgejo repo management
lab secrets <verb> — hero_proc / file-based secrets management
lab skills edit|sync — manage Claude Code skills
lab agent 'instruction' — run an AI agent instruction
Getting lab
Install (download or build from source)
curl -sSfL https://forge.ourworld.tf/lhumina_code/hero_skills/raw/branch/development/scripts/lab_install.sh | bash
lab_install.sh detects your platform (macOS/Linux, arm64/x86_64), downloads the pre-built binary from Forgejo into ~/hero/bin/lab, and falls back to building from source if no binary is available.
First-time setup
After installing lab:
export PATH="$HOME/hero/bin:$PATH"
lab user init # install Rust + nushell, configure shell, prompt for FORGE_TOKEN
lab install core # install AI tools, hero_proc, etc.
lab user init generates:
~/hero/cfg/init.sh— bash environment (PATH_ROOT, CARGO_HOME, sccache, …)~/.config/nushell/env.nu— nushell equivalent, sets NU_LIB_DIRS and loads Hero modules~/.config/nushell/config.nu— sources hero_loader.nu and config_user.nu
Building and uploading a release
lab build --upload --platforms allbase -v
Builds for macos-arm64, linux-musl-arm64, linux-musl-x86_64 and uploads to Forgejo.
Getting a FORGE_TOKEN
Required for lab repo and lab secrets:
- Go to https://forge.ourworld.tf/user/settings/applications
- Generate a token with
read:repository+write:repositoryscopes - Set
FORGE_TOKENin your environment (or letlab user initprompt for it)