Skip to content
Ironflow is pre-1.0: APIs can change between releases. Pin a version. What is ready →

ironflow skills

Manage the Ironflow AI skills bundled with this binary. The skills are compiled into the binary, so they match its version exactly. Write them to disk with ironflow skills sync, then wire your coding agent with ironflow skills doctor.

Terminal window
ironflow skills <subcommand> [flags]

Subcommands:

SubcommandDescription
syncWrite the bundled AI skills to .agents/skills
doctorDetect coding agents and print how to wire the skills (makes no changes)

Write the bundled AI skills to disk. By default they are written to .agents/skills at the project root: the nearest folder at or above the current one that holds .agents/skills or .git. Use --global for $HOME/.agents/skills (available in every project), or --dest for an explicit path. In a terminal with none of these flags, sync asks which one; the default answer is the global install when only that one exists. After it syncs, it offers to symlink the skills into .claude/skills (~/.claude/skills for a global sync, where the default answer is no) for Claude Code. It links only the bundled skills, replaces only an existing symlink, and skips a real directory. With a scope flag, or without a terminal, sync asks nothing and does not link; without a terminal it uses the project. With --agent, sync asks nothing, uses the project unless you pass --global, and wires that agent: claude links the skills into .claude/skills (~/.claude/skills with --global), and codex and gemini read .agents/skills directly. It exits non-zero when the skills could not all be linked. A bundled skill already in a folder that sync never wrote (no version stamp) is refused unless you pass --force. A version stamp is written so ironflow skills doctor can detect when an upgraded binary has left the on-disk skills stale. Requires a binary built with embedded skills (make embed).

Terminal window
ironflow skills sync [flags]

Flags:

FlagShortTypeDefaultDescription
--localboolfalseWrite to ./.agents/skills in the current project (the default)
--globalboolfalseWrite to $HOME/.agents/skills instead of the current project
--deststringExplicit destination directory (overrides --local and --global)
--forceboolfalseReplace bundled skills you have edited locally
--agentstringWire this coding agent without prompting (claude, codex, gemini)

--local and --global cannot be used together. --agent and --dest cannot be used together.

Sync replaces each bundled skill directory it writes. If you have edited one — in Ironflow Desktop’s Skills page, or in any editor — sync refuses and names what it would replace:

Error: these skills in /Users/you/.agents/skills have local edits, and syncing would replace them:
- ironflow-code
Copy anything you want to keep, then re-run with --force.

Files you added beside a bundled skill count as edits, because sync removes them too.

Skills that are not part of the bundled set are never touched, with or without --force. Only directories that exist in the binary’s embedded tree are replaced.

Upgrading Ironflow does not trigger this. “Edited” means changed since the last sync wrote it, not different from what the new binary ships — otherwise every release, which re-stamps version: in every bundled skill, would demand --force.

The comparison uses .ironflow-skills-manifest, written into the skills directory by each sync. A directory synced by a binary older than this feature has no manifest, so the first sync after upgrading prints a note that it could not check, and writes one:

Note: these skills were synced before edit-detection existed, so local edits could not be checked this time. Future syncs will detect them.

Detect installed coding agents and print the exact commands to point each one at the synced skills. This command only prints instructions; it never modifies any files.

Terminal window
ironflow skills doctor [flags]

Flags:

FlagShortTypeDefaultDescription
--localboolfalseTarget ./.agents/skills in the current project (the default)
--globalboolfalseTarget $HOME/.agents/skills instead of the current project
--deststringExplicit skills directory (overrides --local and --global)

With none of these flags, doctor checks the project directory, or the global directory when only a global install exists. --local and --global cannot be used together.