CLI Reference
Complete reference for all Themis commands and options.
Global Options
Section titled “Global Options”These options work with any command:
| Option | Description |
|---|---|
-c, --config <PATH> | Path to config directory (default: ~/.config/themis) |
-v, --verbose | Enable debug logging |
--help | Show help for any command |
--version | Show version |
Commands
Section titled “Commands”themis load <PROFILE>
Section titled “themis load <PROFILE>”Load a profile and apply it to all enrolled applications.
themis load nordthemis load my-dark --dry-runArguments:
<PROFILE>- Name of the profile (without.yamlextension)
Options:
| Option | Description |
|---|---|
--dry-run | Preview changes without writing files or running commands |
Exit Codes:
0- All apps configured successfully1- One or more apps failed (partial success)
themis status
Section titled “themis status”Show the currently loaded profile.
themis statusOutput:
Current profile: nordLast loaded: 2024-01-15T10:30:00ZIf no profile has been loaded:
No state found. Run 'themis load <profile>' first.themis init
Section titled “themis init”Create the initial configuration directory structure.
themis initCreates:
~/.config/themis/├── themis.yaml # Main config with example enrollment├── profiles/│ └── example.yaml # Sample profile├── palettes/ # Empty directory for user palettes└── templates/ # Empty directory for templatesRunning init again is safe - it won’t overwrite existing files.
themis verify
Section titled “themis verify”Validate configuration files and references.
themis verifyChecks:
- YAML syntax in all config files
- Template file paths exist
- Palette references in profiles exist
- Profile syntax is valid
Exit Codes:
0- All checks passed1- Errors found
themis doctor
Section titled “themis doctor”Check that enrolled applications have proper include patterns configured.
themis doctorChecks for each enrolled app:
- App’s main config file exists
- Config includes the Themis-generated partial
Example Output:
kitty: ✓ includes .themis.confwaybar: ✗ missing include for style.cssExit Codes:
0- All apps properly configured1- One or more apps missing includes
themis completions <SHELL>
Section titled “themis completions <SHELL>”Generate shell completions.
themis completions bashthemis completions zshthemis completions fishArguments:
<SHELL>- Shell type:bash,zsh, orfish
Usage:
# Basheval "$(themis completions bash)"
# Zsheval "$(themis completions zsh)"
# Fishthemis completions fish | sourceEnvironment Variables
Section titled “Environment Variables”These are honored identically on Linux and macOS.
| Variable | Description |
|---|---|
THEMIS_CONFIG_DIR | Override config directory (same as -c) |
XDG_CONFIG_HOME | Base for config dir (default: ~/.config) |
XDG_STATE_HOME | Base for state dir (default: ~/.local/state) |
XDG_DATA_DIRS | System palette search roots (default: /usr/local/share:/usr/share) |
See the Configuration Reference for the full per-OS path layout, including the Homebrew prefixes searched for system palettes on macOS.
Examples
Section titled “Examples”# Initialize and create first profilethemis initvim ~/.config/themis/profiles/dark.yaml
# Preview changesthemis load dark --dry-run
# Apply profilethemis load dark
# Check statusthemis status
# Validate configurationthemis verify
# Check app setupthemis doctor
# Use custom config directorythemis -c ~/my-themes load special