Run load without a path to scan the current directory:
repo-local-tools load
The omitted-path scan loads every supported source it finds:
- If
SKILL.mdexists in the current directory, the current directory is loaded as a skill. If the file has a frontmattername, that name is used; otherwise, the current directory name is used. The fallback namesskillandsrcare rejected because they are too ambiguous. - If
mcp.jsonormcpServers.jsonexists, each server under its top-levelmcpServersobject is loaded into the shared MCP registry. - Each
.skillbundle in the current directory is loaded individually. - If a
skillorskillssubdirectory exists, each direct subdirectory under it is loaded as an individual skill directory.
Run load with a path to load one source or scan another directory:
repo-local-tools load path/to/SKILL.md
repo-local-tools load path/to/reviewer.skill
repo-local-tools load path/to/mcp.json
repo-local-tools load path/to/project
Path handling follows the same rules:
SKILL.mdloads its enclosing directory as one skill..skillloads that archive as one skill.mcp.jsonormcpServers.jsonloads every server from itsmcpServersobject.- Any other directory is scanned as though
loadhad been run from that directory.
MCP JSON input follows the interoperable MCP configuration shape used by FastMCP and many MCP clients:
{
"mcpServers": {
"echo": {
"command": "python",
"args": ["-m", "example"],
"env": {
"MODE": "test"
}
}
}
}
Each loaded server is converted into a shared TOML definition under:
$XDG_DATA_HOME/repo-local-tools/mcp-servers/<name>.toml
Each loaded skill is copied under:
$XDG_DATA_HOME/repo-local-tools/skills/<name>/