[FEATURE] Session profiles / presets — save named configurations of model + permissions + MCP tools
Resolved 💬 3 comments Opened Mar 3, 2026 by JohnGalt017 Closed Mar 3, 2026
Problem
Every time I start a new session, I need to manually switch models, toggle permissions, and ensure the right MCP servers are active. There's no way to save a named configuration and switch between them quickly.
Different tasks require fundamentally different setups:
- Research/exploration: Opus model, read-only permissions, web search + context7 MCPs
- Coding: Sonnet, full file permissions, specific language tools
- Security review: Opus, read-only, restricted permissions
Currently there's no way to express "I want my research setup" without manually reconfiguring each time.
Proposed Solution
Add a profile system that lets users define named presets in ~/.claude/settings.json (or a dedicated profiles.json):
{
"profiles": {
"research": {
"model": "claude-opus-4-6",
"permissions": { "allow": ["Read", "WebSearch"], "deny": ["Write", "Bash"] },
"mcpServers": ["context7", "memory-bank"]
},
"coding": {
"model": "claude-sonnet-4-6",
"permissions": { "allow": ["*"] },
"mcpServers": ["playwright", "memory-bank"]
}
},
"defaultProfile": "coding"
}
Switch profiles during a session with a slash command:
/profile research
/profile coding
/profile ← list available profiles
Or at startup:
claude --profile research
Benefits
- Zero friction switching between task contexts
- Team consistency — commit profiles to project's
.claude/directory - Composable — profiles could extend/override each other
- Backward compatible — existing sessions work without any profiles defined
Related Issues
- #6235 (AGENTS.md support) — both solve "context switching overhead"
- #7328 (MCP Tool Filtering) — profiles could include per-tool enable/disable
- #6915 (MCP tools scoped to subagents)
Alternatives Considered
- Manual settings.json editing — too slow, not session-aware
- Multiple config files — no switching mechanism, no UX
- CLAUDE.md per directory — solves project context, not tool/permission config
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗