~/.config/jsm/config.toml (or $XDG_CONFIG_HOME/jsm/config.toml if set)
Windows
%APPDATA%\jsm\config.toml
The file is created automatically on first run or when you run jsm setup.
jsm config show prints the path it uses.
Reading and writing values
# Show the full config
jsm config show
# Read a single key
jsm config get notifications.check_interval_hours
# Set a value
jsm config set notifications.check_interval_hours 12
# Reset everything to defaults
jsm config reset
Configuration keys
General
Key
Type
Default
Description
api_url
string
https://jeffreys-skills.md
API base URL
auth_method
string
oauth
Authentication method (oauth or api_key)
skills_dir
path
(auto)
Override the skill installation directory
cache_dir
path
(auto)
Override the cache directory
verbose
bool
false
Enable verbose logging globally
User
Key
Type
Default
Description
user.projects_dir
path
-
Preferred projects root directory
user.projects_symlink
path
-
Convenience symlink to projects_dir
user.setup_complete
bool
false
Whether first-time setup has been run
Skills directories
Key
Type
Default
Description
skills.claude_dir
path
~/.claude/skills
Claude Code skills directory
skills.codex_dir
path
~/.agents/skills
Codex skills directory (~/.codex/skills to 0.3.36)
skills.gemini_dir
path
~/.gemini/skills
Gemini skills directory
skills.disabled_mirrors
list
(none)
Agent mirrors jsm leaves alone (jsm 0.3.39 and later)
jsm installs every skill into the Claude Code directory and mirrors it to the other agents'
folders: Codex always, and Gemini (from jsm 0.3.40), Cursor, OpenClaw and Hermes when it
detects them. Gemini counts as detected once Gemini CLI has run, and while ~/.gemini/skills
still holds skills: jsm mirrored there for everyone through 0.3.39 and keeps those copies
current until you delete the folder. To keep jsm
out of agents you don't use, turn their mirrors off:
jsm config set skills.disabled_mirrors gemini,cursor
The names are codex, gemini, cursor, openclaw and hermes. jsm then neither creates
those folders nor installs, updates or removes skills in them. Skills it put there earlier stay
until you delete them. An empty value turns every mirror back on.
Network
Key
Type
Default
Description
network.offline_mode
bool
false
Disable all network requests
Setting network.offline_mode to true is equivalent to passing
--offline on every command or setting JSM_OFFLINE=1.
Notifications
Key
Type
Default
Description
notifications.show_update_banners
bool
true
Show update banners in CLI output
notifications.check_interval_hours
int
24
How often to check for updates (0 = never)
notifications.banner_quiet_hours
int
24
Quiet period between banners
notifications.show_tips
bool
true
Show tips and suggestions
Email notifications
Key
Type
Default
Description
notifications.email.enabled
bool
false
Enable email notifications
notifications.email.address
string
-
Email address for notifications
notifications.email.frequency
string
weekly
Frequency: immediate, daily, or weekly
Webhook notifications
Key
Type
Default
Description
notifications.webhook.enabled
bool
false
Enable webhook notifications
notifications.webhook.url
string
-
Webhook URL (must be http:// or https://)
Environment variables
The CLI respects these environment variables, which take priority over the
config file: