Configuration
SkillsCtl reads configuration from a YAML file at ~/.config/skillsctl/config.yaml. You can also override any setting with environment variables or command-line flags.
Initialize configuration
Section titled “Initialize configuration”Run the interactive setup to create the config file:
skillsctl config initNo configuration found. Let's set up skillsctl.
API URL [http://localhost:8080]: https://skills.corp.example.comSkills directory [/home/you/.claude/skills]:
Config saved to /home/you/.config/skillsctl/config.yamlThis writes a config file with the values you entered. Run it again any time to change them.
View current configuration
Section titled “View current configuration”List all current configuration values:
skillsctl config listapi_url: https://skills.corp.example.comGet a single value
Section titled “Get a single value”skillsctl config get api_urlhttps://skills.corp.example.comSet a value
Section titled “Set a value”skillsctl config set api_url https://skills-staging.corp.example.comUpdated api_url in /home/you/.config/skillsctl/config.yamlConfiguration options
Section titled “Configuration options”| Key | Description | Default |
|---|---|---|
api_url | Registry server URL | http://localhost:8080 |
skills_dir | Directory where skills are installed | ~/.claude/skills |
Environment variables
Section titled “Environment variables”Every configuration key has a corresponding environment variable with the SKILLCTL_ prefix and the key uppercased:
| Environment variable | Config key | Example |
|---|---|---|
SKILLCTL_API_URL | api_url | https://skills.corp.example.com |
Environment variables are useful in CI/CD pipelines and containerized environments where you don’t want a config file on disk:
SKILLCTL_API_URL=https://skills.corp.example.com skillsctl explorePrecedence
Section titled “Precedence”When the same setting is provided in multiple places, SkillsCtl uses this order (highest to lowest priority):
- Flag - e.g.
--api-url https://...on the command line - Environment variable - e.g.
SKILLCTL_API_URL - Config file -
~/.config/skillsctl/config.yaml - Default - built-in default value
This means a flag on a single command always wins, making it easy to override the config for one-off operations without editing anything.
Config file format
Section titled “Config file format”The config file is standard YAML:
api_url: https://skills.corp.example.comYou can edit it directly with any text editor. SkillsCtl writes config values with go.yaml.in/yaml/v3 directly (not Viper) so environment variables are never baked into the file.
Credentials file
Section titled “Credentials file”Authentication tokens are stored separately at ~/.config/skillsctl/credentials.json. This file is managed automatically by skillsctl auth login and skillsctl auth logout. Do not edit it manually.
Next steps
Section titled “Next steps”- Publishing skills - share skills with your team