Botfile – Dotfiles for Agents

maitland1 pts1 comments

botfile: manage AI agent skills and instructions

botfile

dotfiles for your agents' skills and instructions

botfile · explain

youwhat is botfile?

botfile<br>botfile is a CLI for managing AI-agent components (skills and instructions).

It reads a config.toml that declares local source directories and which agents should receive their components. It then fans out, creating symlinks from those sources into each agent's native config paths.

youwhy would I use it?

botfile<br>Use botfile if you have user-scoped agent components (like skills or instructions) you use across projects, teams, agents, or devices.

Good fit:

your agent components are user-scoped, used across projects

you use multiple agents

you use multiple machines

your team wants to share standard skills and instructions

agents create useful skills locally and you want to adopt them into a repo

Probably not worth it:

your agent components are project-scoped

you use one agent on one machine

So: yes for managing portable skills and instructions; no if you only need a one-off local setup.

youwhich agents are supported?

botfile<br>Seven, each for both skills and instructions:

claude-code

codex-cli

copilot-cli

copilot-vscode

crush

opencode

pi.dev

youcan I let my agent manage my botfiles with botfile?

botfile<br>Yes. botfile's CLI can respond with structured JSON that makes it easy for an agent to use; the advanced section shows the setup.

you

Prompt

prompt your agentcopy

Fetch https://botfile.org/agents.html (curl or wget) and follow it to<br>install botfile and manage skills and instructions I can share privately<br>with different agents across devices, or publicly with my team.

Install botfile

install · macOS / Linuxcopy

curl -fsSL https://botfile.org/install.sh | sh

install · Windows (PowerShell)copy

# symlink creation needs Developer Mode enabled

irm https://botfile.org/install.ps1 | iex

Create a skill, share it with your agents

Start simple. Keep a skill in a dotfiles repo and let botfile symlink it<br>into the agents you use. Here a meow skill in<br>~/botfiles/personal goes to both Claude Code and Codex.

create a skillcopy

mkdir -p ~/botfiles/personal/cats/skills/meow<br>cat > ~/botfiles/personal/cats/skills/meow/SKILL.md

Tell botfile where the source is and which agents get it. botfile reads<br>config.toml from ~/.config/botfile/:

add the personal botfilecopy

mkdir -p ~/.config/botfile<br>cat > ~/.config/botfile/config.toml

Apply it. One source file becomes a symlink in each agent's native path:

botfile sync

$ botfile sync<br>create ~/.agents/skills/meow -> ~/botfiles/personal/cats/skills/meow<br>create ~/.claude/skills/meow -> ~/botfiles/personal/cats/skills/meow<br>note skills for [codex-cli] also reach [copilot-cli copilot-vscode crush opencode pi.dev] via ~/.agents/skills (selection personal)

synced: 2 operation(s) applied

Claude Code reads ~/.claude/skills/; Codex reads the<br>cross-agent ~/.agents/skills/ pool, which the note flags is<br>shared with the other terminal agents. botfile installs symlinks, not<br>copies, so editing the source file is live through every agent at once.

Import skills from a team repo

Your team keeps shared skills and instructions in a git repo. Clone it,<br>declare it as a second source, and select it for your agents. botfile does<br>the symlinks; git does the fetching. As a stand-in for the team repo, use<br>botfile_example, the example source tree that ships in<br>botfile's own repo:

clone the team repocopy

git clone https://github.com/listfold/botfile ~/botfiles/botfile

The example is a source tree with the<br>// grammar, two<br>plugins here. The team standards live in standards; the<br>botfile plugin waits for the<br>advanced section:

~/botfiles/botfile/examples/botfile_example

botfile/<br>skills/bootstrap-botfile/SKILL.md<br>standards/<br>skills/echo/SKILL.md<br>instructions/no-em-dashes.md

Declare the example as a second source, named botfile, next<br>to the personal one, and select its standards plugin for three<br>agents; a selection can name a whole source, one plugin, or one component.<br>Your config.toml now has both sources:

~/.config/botfile/config.tomlcopy

[[sources]]<br>name = "personal"<br>location = "~/botfiles/personal"

[[selections]]<br>source = "personal"<br>agents = ["claude-code", "codex-cli"]

[[sources]]<br>name = "botfile"<br>location = "~/botfiles/botfile/examples/botfile_example"

[[selections]]<br>source = "botfile"<br>plugin = "standards"<br>agents = ["claude-code", "codex-cli", "copilot-vscode"]

Then apply it. The team's echo skill and<br>no-em-dashes instruction land at each agent's native path:

botfile sync

$ botfile sync<br>create ~/.agents/skills/echo -> ~/botfiles/botfile/examples/botfile_example/standards/skills/echo<br>create ~/.claude/rules/no-em-dashes.md -> ~/botfiles/botfile/examples/botfile_example/standards/instructions/no-em-dashes.md<br>create ~/.claude/skills/echo -> ~/botfiles/botfile/examples/botfile_example/standards/skills/echo<br>create ~/.codex/AGENTS.md ->...

botfile skills agents agent botfiles instructions

Related Articles