agents.md

This page is botfile's AGENTS.md: everything an AI agent needs to drive botfile on a user's machine. The CLI ships the same guide; with botfile installed, run botfile guide (or botfile guide --format markdown|json) to read it locally.

botfile manages AI-agent skills and instructions as symlinks from source repositories you control. Source code is on GitHub.


Model

TermMeaning
sourceA local directory, often a git checkout, holding curated components. botfile reads it in place; git does any fetching.
pluginA named bundle inside a source. Even a single-bundle source has an explicit plugin directory: <source>/<plugin>/.
componentA typed artifact under a plugin. Kinds today: a skill (a directory with a SKILL.md) and an instruction (a .md file).
selectionA config rule mapping a source (and optionally one plugin or component) to one or more agents that should receive it.

Config

One file declares everything: ~/.config/botfile/config.toml. The smallest config that does something is one source and one selection:

~/.config/botfile/config.toml
[[sources]]
name = "personal"
location = "~/botfiles"

[[selections]]
source = "personal"
agents = ["claude-code"]

Scope


Workflow

Run in this order. status and plan are read-only; only run sync after the user agrees.

  1. botfile status: see what is managed, out of sync, and adoptable. Read-only, safe to run anytime.
  2. botfile plan: preview the exact symlinks a sync would create or remove. Read-only; changes nothing.
  3. confirm with the user: show the plan and get the user's agreement before changing anything on disk.
  4. botfile sync: apply the plan only after the user agrees: create and remove symlinks to match the config.
  5. botfile adopt <path> --into <source>/<plugin>: if sync reports a conflict (a real file where botfile wants a link), adopt that file into a source instead of overwriting it. botfile never clobbers.

Commands

CommandDoes
botfile planshow what a sync would change
botfile syncreconcile your agents to match your config
botfile statusshow what is managed, out of sync, and adoptable
botfile adopt <path> --into <source>/<plugin>bring an agent-created component under management
botfile guideprint this guide (text, markdown, or json)
botfile versionprint the version

Where each supported agent receives skills and instructions is listed in the support matrix.


JSON for agents