VibeAI Docs
Automate

Skills & Hooks

Browsing and rolling back skills from the dashboard; installing packages and shell hooks from the CLI.

A skill is a SKILL.md document (+ optional references/) an agent reads for procedural knowledge — how to do something specific to this project or environment. Skills already on disk under <agent home>/skills/<category>/<name>/ show up automatically.

Web UI → Skills (Automate section)

Skills page

The Skills page has two parts:

  • Library — every skill the agent can currently load: name, category, description. This merges two sources — skills the harness itself has written to its database (category harness) and curated file-based skills under <agent home>/skills/.
  • Skill summaries — a timeline of what changed and why, generated automatically after a quiet period (or on demand with Generate Summary). Each entry lists skills that were created or improved (with a version number) and any standalone lessons learned. An ↩ Rollback button appears next to any improved entry with a prior version — it restores that version as a new one (reversible, nothing is destroyed).
Tip

This is where you watch the agent’s self-improvement loop in practice: it edits its own skills over time, and every edit shows up here with a rollback escape hatch.

Note

Installing a new skill from outside (GitHub, a URL) has no dashboard form yet — that’s CLI-only, below. The dashboard page only browses, summarizes, and rolls back what’s already on disk.

CLI: install/search/update

The skills hub is how you pull new skills in from outside the agent’s own self-editing loop:

aios skills list                                   # what's installed
aios skills show <name>                             # read one
aios skills install owner/repo/path/to/skill        # from a public GitHub repo
aios skills install https://.../SKILL.md --name foo # from a direct URL
aios skills update <name>                            # re-fetch, no-op if unchanged
aios skills uninstall <name>

This is a free package manager, not a marketplace — no payment, no seller accounts, nothing changes hands but files. Every install is tracked in <skills dir>/.hub/aios-lock.json (source, content hash) so update only touches files that actually changed. --git-ref <branch> pins a GitHub install to a specific branch/tag/commit instead of the repo’s default branch.

Shell hooks: react to (or block) agent events

A hook is a shell command that runs when a specific agent-lifecycle event fires — most usefully, before a tool call, where it can veto the call outright. Hooks are CLI-only — there’s a real /api/hooks endpoint backed by the same store the CLI uses, but no dashboard nav page calls it yet, so approving and managing hooks happens on the command line:

aios hooks events                        # every event name; only
                                          # pre_tool_call/post_tool_call are
                                          # actually wired into a turn loop
                                          # today (interactive TUI only)
aios hooks add pre_tool_call '/path/to/guard.sh' --label "block rm -rf"
aios hooks list                          # shows status: unapproved/active/disabled
aios hooks approve <id>                  # REQUIRED before it ever runs
aios hooks disable <id>                  # pause without losing the config
aios hooks remove <id>
Warning

A hook only runs after you explicitly approve it — adding one to hooks.json is not enough, on purpose: that file could have been edited by something less trusted than whoever’s running the agent.

The hook receives a JSON payload on stdin ({"event": "...", "kwargs": {...}}) and has up to 10 seconds to print a JSON decision on stdout:

{"decision": "allow"}
{"decision": "skip", "reason": "why it was blocked"}
{"decision": "rewrite", "text": "replacement output"}

A hook that crashes, times out, or prints garbage defaults to allow — a broken hook degrades to “not there,” it never wedges the agent.

Tip

A real, ready-to-use example ships in the server-admin skill (skills/devops/server-admin/references/dangerous-command-guard.sh) — blocks rm -rf /-shaped commands, unconfirmed systemctl stop on core units, and recursive deletes of ~/.aios. Point aios hooks add at it and approve it to try it.