Initialize instruction files and skills for AI coding agents in your project.
Usage
# Specify at least one of --lang or --agent
# With language conventions
slopctl init --lang <language> [--agent <agent>] [--mission <text|@file>] [--force] [--dry-run]
# Agent only (preserves existing language, or language-independent if fresh)
slopctl init --agent <agent> [--mission <text|@file>] [--force] [--dry-run]
Options
--lang <string>— programming language or framework (e.g.c++,rust,shell,swift,c). Optional; omit for language-independent setup--agent <string>— AI coding agent (e.g.claude,copilot,codex,cursor). Optional; when specified alone, preserves the existing language when switching agents--mission <string>— custom mission statement to override the template default. Use@filenameto read from a file (e.g.--mission @mission.md)--force— force overwrite of local files without confirmation; also bypasses the already-initialized guard for reinstalls--dry-run— preview changes without applying them
Examples
# Initialize a Rust project (works with all agents)
slopctl init --lang rust
# Initialize a C++ project
slopctl init --lang c++
# Agent only (AGENTS.md + agent prompts, no language files)
slopctl init --agent cursor
# Switch from Cursor to Claude (keeps existing language, e.g. Rust)
slopctl init --agent claude
# Custom mission statement (inline)
slopctl init --lang rust --mission "A CLI tool for managing AI agent instructions"
# Mission statement from a file (multi-line support)
slopctl init --lang rust --mission @mission.md
# Force overwrite existing local files
slopctl init --lang swift --force
# Preview what would be created/modified
slopctl init --lang rust --dry-run
Behavior
- Uses global templates to set up agent instructions in the current project
- If global templates don’t exist, automatically downloads them from the default repository
- Detects template version from
templates.yml - Must specify at least one of
--langor--agent - GitHub URL sources: any
sourcefield intemplates.ymlcan be a full GitHub URL (cached bytemplates --updateor fetched via tarball duringinit) - With
--agentonly (no--lang): createsAGENTS.mdwith mission, principles, integration (no language files); preserves existing language if previously installed; installs agent-associated skills; creates agent-declared directories (e.g..cursor/plans) - With
--lang: creates a singleAGENTS.mdplus language config files; installs language-associated skills (own + inherited from shared groups) to the cross-client directory; optional--agentadds agent prompts and agent skills - Already-initialized guard: when every requested
--lang/--agentis already installed (per the file tracker),initerrors with guidance pointing toslopctl update,slopctl merge, or--force; adding anything new proceeds normally - Checks for local modifications to
AGENTS.md(detects if the template marker has been removed); if customized and--forceis not specified, skipsAGENTS.md - Tracked files with local modifications that add no new owners are skipped (local version
kept);
mergeis their update path,--forceoverwrites - Files are placed according to
templates.ymlwith placeholder resolution:$workspaceresolves to the current directory,$userprofileto the user’s home directory - Merges language-specific and integration fragments into
AGENTS.md