No description
  • Rust 78.6%
  • Nushell 17.6%
  • Shell 3.7%
Find a file
Mahmoud-Emad 73e5af6767
Some checks failed
Publish edge build / build-and-publish (push) Failing after 1s
Build and Test (lab workspace) / build-and-test (push) Failing after 3s
fix(lab/repo): fall back to hero_cfg.toml when FORGE_TOKEN env empty
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>
2026-05-19 09:16:48 +03:00
.forgejo/workflows ci(edge): switch to rust:latest, drop musl cross-compile 2026-05-13 15:37:21 +02:00
.hero lab: add musl-cross installer, auto-install on missing linker, harden build orchestrator 2026-05-17 10:35:35 +02:00
_archive refactor(lab): overhaul install scripts, user cfg, and docs 2026-05-16 19:33:23 +02:00
_beta refactor(lab): overhaul install scripts, user cfg, and docs 2026-05-16 19:33:23 +02:00
agents/default feat(lab): add Kimi agent config, MCP runner, OpenRPC client, and skills infrastructure 2026-05-16 13:05:28 +02:00
claude refactor(skills): reorganize skill files and add mother-skill sync for Claude+Kimi 2026-05-16 08:09:21 +02:00
crates fix(lab/repo): fall back to hero_cfg.toml when FORGE_TOKEN env empty 2026-05-19 09:16:48 +03:00
docs feat(scripts): add uninstall.sh + clarify hero_cfg.toml authorship 2026-05-11 11:22:49 +00:00
hero_os_architecture fix(lab): single-daemon mycelium cleanup, user-IP bind, IPv6 forward, nu env.nu 2026-05-13 15:32:15 +02:00
howto docs: update tools/ references to nutools/ in README, skills, architecture docs 2026-05-06 05:52:31 +02:00
knowledge lab: make env.nu dynamic via load-env + lab path --shell json 2026-05-17 17:36:25 +03:00
meetingnotes refactor: replace all zinit references with hero_proc (#68) 2026-03-20 11:39:39 -04:00
nutools nutools: gate secrets load on hero_proc ping, remove verbose init prints 2026-05-17 18:34:48 +02:00
prompts fix: remove unused merge_with_agent import and add --info requirement to build prompt 2026-05-10 13:11:54 +02:00
research/memory fix(submodule): remove orphaned vast_ai_research gitlink 2026-05-12 07:11:27 +02:00
scripts lab: add lab install/build commands, stale-binary cleanup, PATH_BUILD + PATH_ROOT env support 2026-05-18 07:05:02 +02:00
servers make-file helper 2026-02-05 07:25:03 +04:00
skills fix(skills/hero_ui_logs_viewer): link hero_log not hero_proc_log 2026-05-19 09:07:15 +03:00
.gitignore refactor: Consolidate code directories and simplify paths 2026-05-13 12:30:28 +03:00
Cargo.lock lab: replace hero_cfg.toml with HeroConfig model + Askama shell templates 2026-05-17 18:11:24 +02:00
Cargo.toml fix(lab): wire service.toml + herolib_core::base, fix nushell completions source 2026-05-13 08:12:47 +02:00
README.md lab: add musl-cross installer, auto-install on missing linker, harden build orchestrator 2026-05-17 10:35:35 +02:00

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:

  1. Go to https://forge.ourworld.tf/user/settings/applications
  2. Generate a token with read:repository + write:repository scopes
  3. Set FORGE_TOKEN in your environment (or let lab user init prompt for it)