Skip to content

Usage

Getting help

Append --help or -h to any command to see its usage:

trv --help
trv add -h
trv env --help

Project vs global mode

By default trv runs in project mode:

  • Skills are installed to .agents/skills/
  • Metadata is stored in skills.lock at the project root
  • The project root is the nearest Git ancestor (or the current directory)

Use --global / -g to operate on the machine-wide installation at ~/.agents/skills/.

Choosing an agent directory

Skills land in .agents/ by default. Use --dir / -d to target the layout your runtime expects instead - .claude, .cursor, .copilot, or any other single directory name:

trv add <url> --all --dir .claude

In project mode the choice is recorded in skills.lock as agent_dir, so list, info, update, remove, and every env command reuse it without the flag. Set TRIVIUM_AGENT_DIR to change the default for new installs:

export TRIVIUM_AGENT_DIR=.claude

The directory is resolved in this order:

Order Project mode Global mode
1 agent_dir in skills.lock --dir
2 --dir on add or move (migrates) -
3 $TRIVIUM_AGENT_DIR $TRIVIUM_AGENT_DIR
4 .agents .agents

Because the project lockfile sits at the project root and names its own directory, --dir is accepted in project mode only by add and move, which migrate the install. On list, info, update, and remove it is rejected unless combined with --global - otherwise those commands would act on a tree the lockfile does not describe.

A project targets one directory at a time. Global installs are self-contained - ~/.claude/skills/ and ~/.agents/skills/ each keep their own skills.lock, so several can coexist.

move - Change the agent directory

Move an existing project install into another agent directory. The skill tree moves, every install_path in skills.lock is rewritten, and saved environment manifests follow along:

trv move .claude

Passing --dir to add performs the same migration before installing. Deactivate any active environment first (trv env deactivate), and commit or stash a dirty skill tree - the move is refused when the runtime does not match its lockfile hashes.

add - Install skills

Options can be placed before or after the URL. Both of these work:

trv add https://example.com/repo.git --all
trv add --all https://example.com/repo.git
trv add <url> --all
trv add <url> --skills name1 name2
trv add <url> -a -p skills/
trv add <url> -a --dry-run
trv add <url> -a --ignore-validation
trv add <url> -a --yes
trv add <url> -a --global
trv add <url> -a --dir .claude

list - List installed skills

trv list
trv list --json
trv list --global
trv list --global --dir .claude

info - Show skill details

trv info skill-name
trv info skill-name --global

update - Update installed skills

trv update
trv update skill1 skill2
trv update --dry-run
trv update --global

remove - Remove skills

trv remove skill1 skill2
trv remove -a
trv remove -a --yes
trv remove skill1 --global

env - Manage environments

trv env list
trv env create office
trv env activate office
trv env info
trv env deactivate
trv env remove office

Environment commands that manage a manifest (list, create, activate, remove, and info) accept --global to operate on the global installation. env deactivate always restores the active project runtime.