# Change Setting

> Modify pythonclaw.json configuration at runtime. Use when: user wants to set API keys, tokens, change LLM provider, adjust web port, or update any config value. NOT for: editing code, changing soul/persona files, or modifying skill files.

- Skill: `ericwang915/change-setting` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add ericwang915/change-setting`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ericwang915/change-setting/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ericwang915 (https://skillmd.com/u/ericwang915)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ericwang915/change-setting

---


# Change Setting Skill

Modify `pythonclaw.json` configuration at runtime.

## When to Use

✅ **USE this skill when:**
- "Set my API key to ..."
- "Change LLM provider to Claude"
- "Update my Tavily/Telegram/GitHub token"
- "Change the web port to 8080"
- "Configure email credentials"
- User wants to change any runtime setting without editing files manually

## When NOT to Use

❌ **DON'T use this skill when:**
- Changing agent personality or identity → use change_persona or change_soul
- Editing Python code or skill files → use file edit tools
- Adding/removing skills → use skill management or manual file edits

## Usage/Commands

**Show current config:**
```bash
python {skill_path}/update_config.py --show
```

**Update a value** (dot-notation for key path):
```bash
python {skill_path}/update_config.py --set "llm.deepseek.apiKey" "sk-xxx"
```

**Examples:**
```bash
# Change LLM provider
python {skill_path}/update_config.py --set "llm.provider" "claude"

# Set Tavily API key
python {skill_path}/update_config.py --set "tavily.apiKey" "tvly-xxx"

# Set Telegram token
python {skill_path}/update_config.py --set "channels.telegram.token" "123:ABC"

# Set GitHub token
python {skill_path}/update_config.py --set "skills.github.token" "ghp_xxx"

# Change web port
python {skill_path}/update_config.py --set "web.port" "8080"

# Set email credentials
python {skill_path}/update_config.py --set "skills.email.senderEmail" "me@gmail.com"
python {skill_path}/update_config.py --set "skills.email.senderPassword" "app-password"
```

After updating, tell the user the change was saved and whether a restart is needed to take effect.

## Notes

- Uses bundled `update_config.py` to read and update pythonclaw.json
- API keys, passwords, and tokens are masked when displaying config
- Only `pythonclaw.json` is modified — no other files

