CLI Reference
Install globally with npm i -g @arvoretech/hub, then run commands as hub <command>. You can also use npx @arvoretech/hub <command> without installing.
Setup & Init
hub init [name]
Create a new hub workspace with an interactive TUI:
hub init my-hub
Launches a multi-step wizard that guides you through:
- Naming your workspace
- Choosing your AI editor (Cursor, Kiro, Claude Code, OpenCode)
- Adding repositories with tech stack detection
- Selecting agents and skills from the directory registry
- Picking MCP servers for infrastructure access
- Choosing config format (YAML or TypeScript)
Creates a directory with the config file (hub.yaml or hub.config.ts), .gitignore, README.md, and installs selected agents and skills from the registry.
hub setup
Full workspace setup — clone repos, start services, install tools, generate env files, install dependencies:
hub setup
hub setup --skip-services
hub setup --skip-install
hub setup --skip-tools
| Flag | Description |
|---|---|
--skip-services | Skip Docker service startup |
--skip-install | Skip dependency installation |
--skip-tools | Skip tool installation via mise |
hub clone
Clone all repositories defined in your config without running the full setup:
hub clone
hub clone --ssh # Force SSH clone
hub clone --https # Force HTTPS clone via gh CLI
| Flag | Description |
|---|---|
--ssh | Force SSH clone (default if SSH is available) |
--https | Force HTTPS clone via gh CLI |
Skips repos that already exist locally. Useful when you only need the code without services, tools, or dependency installation.
hub doctor
Check required dependencies and tool versions:
hub doctor
Checks: git, docker, node (required), pnpm, mise, gh, aws (recommended), plus any tools declared in hub.yaml.
hub generate
Generate editor configuration files from your config (hub.yaml or hub.config.ts):
hub generate --editor cursor # Cursor IDE (default)
hub generate --editor claude-code # Claude Code (CLAUDE.md)
hub generate --editor kiro # Kiro IDE
hub generate --editor opencode # OpenCode CLI
hub generate --check # Check if configs are outdated (exit 1 if outdated)
| Flag | Description |
|---|---|
-e, --editor <editor> | Target editor (cursor, claude-code, kiro, opencode) |
--reset-editor | Reset saved editor preference and choose again |
--check | Check if generated configs are outdated without regenerating. Exits with code 1 if outdated, 0 if up to date. Useful in CI and editor hooks. |
Produces:
- Cursor:
.cursor/rules/orchestrator.mdc,.cursor/rules/<steering>.mdc,.cursor/agents/,.cursor/skills/,.cursor/skills/hub-docs/,.cursor/commands/,.cursor/hooks.json,.cursor/mcp.json,<name>.code-workspace,.gitignore,.cursorignore - Claude Code:
CLAUDE.md(with steering appended),.claude/agents/,.claude/skills/,.claude/skills/hub-docs/,.claude/settings.json(with hooks),.mcp.json,.gitignore - Kiro:
.kiro/steering/orchestrator.md,.kiro/steering/<steering>.md,.kiro/agents/,.kiro/skills/,.kiro/skills/hub-docs/,.kiro/settings/mcp.json,AGENTS.md,<name>.code-workspace,.gitignore - OpenCode:
opencode.json,.opencode/rules/orchestrator.md,.opencode/rules/<steering>.md,.opencode/agents/,.opencode/skills/,.opencode/skills/hub-docs/,.opencode/commands/,.opencode/plugins/hub-hooks.js,.gitignore
All editors get steering files from the steering/ directory copied in their native format, and a hub-docs skill auto-fetched from hub.arvore.com.br.
When generating for Kiro, the CLI asks whether you use Kiro as an IDE or CLI. This affects how environment variables are referenced in MCP configs (${VAR} for IDE vs ${env:VAR} for CLI). The choice is saved in .hub/config.json and reused on subsequent runs.
Repositories
hub add-repo <url>
Add a repository to the hub:
hub add-repo git@github.com:company/api.git
hub add-repo git@github.com:company/api.git --name api --tech nestjs
| Flag | Description |
|---|---|
-n, --name <name> | Repository name (defaults to repo name from URL) |
-t, --tech <tech> | Technology stack (nestjs, nextjs, elixir, react, etc.) |
hub pull
Pull latest changes in all repositories:
hub pull
hub status
Show git status for all repositories:
hub status
Shows: current branch, number of changed files, commits ahead/behind upstream.
hub exec <command>
Execute a command in all repositories:
hub exec "git checkout main"
hub exec "git stash"
hub exec "pnpm outdated"
hub scan
Detect unregistered repositories and unsynced assets (skills, agents, steering, MCPs) in the workspace:
hub scan # Interactive — select which repos to add and assets to sync
hub scan --yes # Auto-add all repos and sync all assets without prompting
hub scan --check # Check for unsynced repos/assets (exit 1 if found)
| Flag | Description |
|---|---|
-y, --yes | Auto-add all repos and sync all assets without prompting |
--check | Check for unsynced repos and assets without prompting. Exits with code 1 if any are found, 0 if all synced. Useful in CI and pre-commit hooks. |
The command performs three passes:
- Scans the workspace root for directories containing a
.gitfolder not listed inhub.yaml, auto-detecting the tech stack and git remote URL. - Scans editor directories (
.kiro,.cursor,.opencode,.claude) for skills, agents, and steering files that don’t exist in the canonicalskills/,agents/, orsteering/folders, and offers to sync them. - Scans editor MCP configs (
.cursor/mcp.json,.kiro/settings/mcp.json,.mcp.json,opencode.json) for MCP servers not declared inhub.yamland reports them.
See Scan for full documentation.
Environment
hub env [profile]
Generate environment files from hub.yaml profiles:
hub env local # Local Docker services (no AWS)
hub env staging # Staging secrets from AWS
hub env prod # Production secrets (careful!)
Default profile: local. See Environment for full documentation.
Services
hub services [action]
Manage Docker development services:
hub services up # Start services
hub services down # Stop services
hub services restart # Restart services
hub services ps # Show status
hub services logs # Follow all logs
hub services logs mysql # Follow specific service logs
hub services clean # Stop and remove volumes
See Services for configuration details.
Tools
hub tools [subcommand]
Manage development tool versions via mise:
hub tools generate # Generate .mise.toml files
hub tools install # Install tools
hub tools install --generate # Generate + install
hub tools check # Verify versions match
See Tools for configuration details.
Directory
hub directory [query]
Browse the curated Repo Hub directory of skills, agents, hooks, and commands:
hub directory # Open the full directory
hub dir # Short alias
hub directory "aws" # Search for "aws"
hub directory -t skill # Filter by type
hub directory -t hook "session" # Combine type filter + search
| Flag | Description |
|---|---|
-t, --type <type> | Filter by type: skill, agent, hook, command |
Each resource type also has its own find subcommand:
hub skills find react # Browse skills
hub agents find aws # Browse agents
hub hooks find # Browse hooks
hub commands find # Browse commands
Skills
hub skills [subcommand]
Manage agent skills. Browse curated skills in the Directory.
hub skills list # List installed skills
hub skills find react # Browse curated skills in the directory
hub skills add backend-nestjs # Install from registry (by name)
hub skills add vercel-labs/agent-skills/react-best-practices # Specific skill from GitHub
hub skills add vercel-labs/agent-skills # All skills from a GitHub repo
hub skills add vercel-labs/agent-skills --list # List remote skills
hub skills add git@github.com:company/skills.git # Install from git URL
hub skills add ./my-local-skills # Install from local path
hub skills add backend-nestjs --global # Install globally
hub skills remove backend-nestjs # Remove a skill
| Flag | Description |
|---|---|
-s, --skill <name> | Install a specific skill only (for repo sources) |
-g, --global | Install to/remove from global ~/.cursor/skills/ |
-r, --repo <repo> | Override registry repository |
-l, --list | List available skills without installing |
See Skills for more details.
Agents
hub agents [subcommand]
Manage agent definitions:
hub agents list # List installed agents
hub agents add debugger # Install from registry (by name)
hub agents add arvoreeducacao/rhm # Install from GitHub repo
hub agents add debugger --global # Install globally
hub agents remove debugger # Remove an agent
hub agents sync # Install all agents from hub.yaml pipeline
hub agents sync --force # Re-install all, even if they exist
| Flag | Description |
|---|---|
-a, --agent <name> | Install a specific agent only |
-g, --global | Install to/remove from global ~/.cursor/agents/ |
-r, --repo <repo> | Override registry repository |
-f, --force | Re-install even if already installed (sync only) |
See Agents for more details.
Hooks
hub hooks [subcommand]
Manage editor hooks:
hub hooks list # List installed hooks
hub hooks find # Browse curated hooks in the directory
hub hooks add format-on-save # Install from registry
hub hooks add company/shared-hooks # Install from GitHub repo
hub hooks add ./my-hooks # Install from local path
hub hooks remove format-on-save # Remove a hook
| Flag | Description |
|---|---|
--hook <name> | Install a specific hook only (for repo sources) |
-r, --repo <repo> | Override registry repository |
See Hooks for more details.
Commands
hub commands [subcommand]
Manage slash commands (Cursor and OpenCode):
hub commands list # List installed commands
hub commands find # Browse curated commands in the directory
hub commands add review # Install from registry
hub commands add company/shared-cmds # Install from GitHub repo
hub commands add ./my-commands # Install from local path
hub commands remove review # Remove a command
| Flag | Description |
|---|---|
-c, --command <name> | Install a specific command only (for repo sources) |
-r, --repo <repo> | Override registry repository |
See Commands for more details.
Memory
hub memory [subcommand]
Manage team memories — persistent knowledge base for AI context:
hub memory list # List all memories
hub memory list --category decisions # Filter by category
hub memory list --status archived # Show archived
hub memory add decisions "Use PostgreSQL" # Create a memory
hub memory add conventions "API naming" --tags "rest,api" --author joao
hub memory add gotchas "Sentry v8 leak" --content "Sentry SDK v8 causes memory leak with NestJS interceptors"
hub memory archive 2024-06-01-use-postgresql # Soft-delete
hub memory remove 2024-06-01-use-postgresql # Permanent delete
| Flag | Description |
|---|---|
-c, --category <cat> | Filter by category |
-s, --status <status> | Filter by status (active, archived, superseded) |
-t, --tags <tags> | Comma-separated tags |
-a, --author <author> | Author name |
--content <content> | Memory content (otherwise opens template) |
Categories: decisions, conventions, incidents, domain, gotchas.
The @arvoretech/memory-mcp provides semantic search via MCP so AI agents can query your team’s knowledge base on-demand.
See Memory for full documentation.
Consolidation
hub consolidate
Extract knowledge from chat sessions across editors into team memories:
hub consolidate # Process last 20 sessions from all editors
hub consolidate --last 50 # Last 50 sessions
hub consolidate --since 2026-03-01 # Only sessions after this date
hub consolidate --editor kiro # Only from Kiro
hub consolidate --editor claude # Only from Claude Code
hub consolidate --cli claude # Use Claude CLI for extraction
hub consolidate --dry-run # Preview batch without extracting
hub consolidate --reset # Reset state and reprocess all
| Flag | Description |
|---|---|
-n, --last <count> | Number of recent sessions to process (default: 20) |
-s, --since <date> | Only process sessions after this date (YYYY-MM-DD) |
-e, --editor <editor> | Editor to collect from: kiro, claude, opencode, all (default: all) |
--cli <cli> | Editor CLI to use for extraction: kiro-cli, claude, opencode |
--dry-run | Show batch content without running extraction |
--reset | Reset consolidation state and reprocess all sessions |
The command auto-detects which editor CLIs are installed and uses the first one found. Sessions already processed are tracked in .hub/consolidation-state.json and skipped on subsequent runs.
See Memory — Consolidation for full documentation.
Registry
hub registry [subcommand]
Browse skills, agents, hooks, and commands available in the registry:
hub registry list # List everything
hub registry list --type hook # List hooks only
hub registry search "nestjs" # Search by keyword
hub registry search --type skill # Filter by type
hub registry search --type command # Filter by type
| Flag | Description |
|---|---|
-t, --type <type> | Filter by type: skill, agent, hook, command |
-r, --repo <repo> | Override registry repository |
Worktrees
hub worktree [subcommand]
Manage git worktrees for parallel work:
hub worktree add feature-login # Create worktree + copy envs
hub worktree list # List all worktrees
hub worktree remove feature-login # Remove a worktree
hub worktree copy-envs # Copy env files to current dir
hub worktree copy-envs feature-login # Copy to specific worktree
See Worktrees for more details.
Sandbox
hub sandbox [action]
Manage the AIO Sandbox environment:
hub sandbox up # Start the sandbox container
hub sandbox down # Stop the sandbox container
hub sandbox status # Check if running (default)
hub sandbox logs # Follow container logs
hub sandbox open # Open VSCode Server in browser
Requires a service with type: sandbox in your config. See Services — Sandbox for configuration details.
Update
hub update
Update the hub CLI to the latest version:
hub update # Update to latest
hub update --check # Check for updates without installing
Automatically detects your package manager (pnpm, npm, or yarn) and runs the appropriate global install command.
| Flag | Description |
|---|---|
--check | Only check for updates, don’t install |
Persona
hub persona
Set up your personal AI profile — adapts how the agent communicates with you:
hub persona
Launches an interactive TUI that asks your name, role, technical level, extra context, and preferred language. Saves to .hub/persona.yaml (local, gitignored).
When you run hub generate, the persona is injected into AGENTS.md so the AI adapts its communication style to you — whether you’re a CEO who wants business summaries or a senior dev who wants raw technical details.
See Persona for full documentation.