Feature request: project-level titlePrefix setting for terminal tab titles
Problem
When working across multiple repos simultaneously, all Claude Code terminal tabs show auto-generated titles like fix-doh-fallback-hostname — with no indication of which repo the conversation belongs to. In a multi-repo workflow (we have 10+ repos for one product), this makes it difficult to identify tabs at a glance.
Proposed solution
Add a titlePrefix setting to .claude/settings.local.json (project-level) that prepends a user-defined string to the auto-generated conversation title.
Example config (.claude/settings.local.json):
{
"titlePrefix": "AO-Mac"
}
Result in terminal tab:
AO-Mac: fix-doh-fallback-hostname
Why project-level?
Different repos need different prefixes. A global setting wouldn't solve the problem. The prefix should come from the project's own settings so it's tied to the repo, not the user.
Alternatives considered
| Approach | Why insufficient |
|----------|-----------------|
| CLAUDE.md instruction | Title generation is isolated — doesn't read CLAUDE.md context |
| Ghostty title config | Static — overrides the dynamic topic summary entirely |
| Shell wrapper/alias | Claude Code overwrites the title when it generates its own |
| Custom statusLine | Shows directory info at the bottom, but doesn't help with tab identification |
Environment
- Terminal: Ghostty (but this would benefit any terminal that shows tab titles)
- Claude Code version: latest
- Use case: multi-repo product development (10+ repos, frequently 3-5 Claude Code sessions open)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗