Syncing into Agents

Install the skills of your organization into the folders your agents read, and keep them up to date

Introduction

Agents read skills from a folder on the machine they run on. gatana skills install writes the skills you can read into those folders and adds a hook that refreshes them at the start of every session. After that, the machine follows Gatana: a skill edited in Gatana is on the machine at the next session start, and a skill removed from Gatana is removed from the folder.

GatanaUser 1User 2Receivegatana skills pushStore the new versionof the skillEdits a skillin ~/.claude/skillsand pushesSession starts:the hook runsgatana skills syncThe skill isupdated in~/.claude/skillsSessionStart hookBefore the agent starts work

Installing

curl -fsSL https://github.com/gatana-ai/gatana/releases/latest/download/install.sh | sh
gatana config login # opens the browser, where you choose your organization
gatana skills install # install all skills and the hook
gatana skills install my-collection # install all skills in collection and the hook
gatana skills install skill-123 # install specific skill and the hook

The name can be a skill or a collection. When a skill and a collection share a name, add --collection or --skill to say which one you mean.

Where the skills go

Without a target, the install writes into the folders of every agent:

PresetFolderAgents
claude~/.claude/skillsClaude Code
agents~/.agents/skillsCodex, Cursor, Gemini CLI, OpenCode, Copilot, Amp
hermes~/.hermes/skillsHermes

Add a preset name or a directory to install into one place instead:

gatana skills install claude                     # only the Claude Code folder
gatana skills install my-collection ./team-skills # a directory of your own

Each skill becomes a folder named after it, holding a SKILL.md with the name and description in the frontmatter. Gatana adds its own metadata to the frontmatter (the organization, the skill id, the collection and the last update), which is how later runs know what came from Gatana.

What a folder follows

Gatana remembers what each folder follows: everything you can read, one collection, or one skill. Later syncs refresh that selection. Skills removed from Gatana, or that you lost access to, are removed from the folder. Skills that did not come from Gatana are left alone, as are Gatana skills you edited locally: a sync reports them and keeps your version until you push it or run with --force.

A folder that was never installed into follows everything you can read, so a sync alone is enough on a new machine.

Keeping them up to date

The install adds a hook on the SessionStart event of the agent. It runs gatana skills sync --quiet, which refreshes what each folder follows before the agent starts work. You can run gatana skills sync yourself at any time, with the same targets and options as the install.

gatana skills hook {agent} prints the block the install merges into the agent's configuration. Add --install to write it instead of printing it. gatana skills remove-hooks removes it again, from one agent or from all.

$ gatana skills hook claude
{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup|resume",
        "hooks": [
          {
            "type": "command",
            "command": "gatana skills sync --quiet"
          }
        ]
      }
    ]
  }
}

The hook needs the CLI on the PATH of the agent

The agent runs gatana from its own environment. If the hook reports that the command is not found, install the CLI globally, or put the full path to it in the hook block.

Options

OptionEffect
--dry-runShow what would change without writing
--no-hooksDo not add the session-start hooks (install only)
--no-pruneKeep skills locally that were removed from Gatana
--resetForget the previous state and install every skill you can read again (install only)
--forceOverwrite skills that did not come from Gatana or that you edited locally, and install into a directory that is not empty or is synced from another organization
--quietPrint nothing on success; warnings and errors still go to stderr
--org IDUse this organization from the config file, instead of the default

gatana skills ls lists the skills you can read, with --query, --collection and --collections to narrow it.

Last updated on

On this page