Agent Skill
The CLI bundles a portable, versioned thalix-vault Agent Skill at packages/cli/skill/thalix-vault/ that teaches an AI coding agent how to discover and safely run supported tv commands. tv skill install|update|uninstall|doctor|export (#11) manage it locally; see Command reference for exact syntax.
Hosts and scopes
| Host | User scope | Project scope |
|---|---|---|
| Claude Code | $HOME/.claude/skills/thalix-vault/ | <repo>/.claude/skills/thalix-vault/ |
| Codex | $HOME/.agents/skills/thalix-vault/ | <repo>/.agents/skills/thalix-vault/ |
Both paths are confirmed against each host's own current documentation: Claude Code reads SKILL.md files under ~/.claude/skills/ (user) and .claude/skills/ (project); Codex's official skills guide (<https://learn.chatgpt.com/docs/build-skills>, "Where Codex loads local skills") documents USER scope as $HOME/.agents/skills and REPO scope as .agents/skills at or above the current working directory up to the repository root. tv skill install --scope project resolves the repository the same way Codex does -- from the Git repository containing the current directory -- and fails with SKILL_NO_REPOSITORY outside one.
--scope user is the default. Project scope is opt-in per the PRD ("User scope is the default. Repository scope requires a detected repository and writes only within that repository").
Install, update, uninstall, doctor
Every payload file plus a manifest (skillVersion, cliVersion, target, scope, installedAt, and a SHA-256 per file) is written to a hidden sibling staging directory first; the install directory is only ever touched by the final atomic rename, so a killed or crashed install/update leaves the previous state (or no state) intact, never a partial one.
install/update refuse to overwrite a file changed outside tv, or an install directory holding files tv never put there, unless --backup-and-replace is given -- in which case the previous directory contents are preserved as a timestamped sibling (.tv-skill-backup-<uuid>) rather than deleted, and the human-readable output prints an explicit warning naming every affected file.
uninstall deletes only the files its manifest proves it placed, then the manifest itself, then any directory left empty by that removal. A file the user placed inside the install directory themselves -- something the manifest never listed -- is never touched, and the install directory survives uninstall if one remains.
doctor reports, for every (target, scope) location it can resolve, whether tv is on PATH, whether a local session exists (existence only -- it never reads or prints the credential file's contents), the bundled skill version, and each install's status: healthy, outdated (older skill version, files otherwise intact), modified (a managed file's content no longer matches the manifest), not-installed, or corrupt (the manifest is unreadable, a managed file is missing, or a manifest entry tries to resolve outside the install directory -- which doctor and uninstall both reject rather than following).
ChatGPT (tv skill export --target chatgpt)
A ChatGPT web or desktop-app chat runs in the cloud/browser and has no access to the user's filesystem or terminal, so it cannot execute tv the way Claude Code or Codex can -- there is no installable skill for it in this MVP. tv skill export --target chatgpt [--output <path>] instead writes a short, non-secret Markdown brief the user can paste into a ChatGPT conversation. The brief:
- States plainly, up front, that ChatGPT cannot run
tvand that every command is something the user runs themselves in their own terminal. - Lists the same core command syntax as Command reference so ChatGPT can help compose a correct command.
- Documents the
--jsonsuccess/error contract so ChatGPT can help interpret output the user pastes back in. - Contains no credential, token, or session data, and explicitly instructs ChatGPT never to ask for one, never to claim it ran a command, and never to invent a command not on the list.
A hosted ChatGPT plugin, connector, MCP server, or other direct cloud-to-vault integration remains out of scope: the MVP has no public API or service credential for one to use (PRD "Agent Skill Enablement").