This plugin auto-generates meaningful OpenCode session titles from your conversation.
This repository is a fork of:
- Upstream:
Tarquinen/opencode-smart-title - Fork:
the3asic/opencode-smart-title
The npm package for this fork is:
@the3asic/opencode-smart-title
Compared to upstream, this fork adds:
- Custom prompt support via config (
prompt) - Directory exclusion (
excludeDirectories) so specific paths are ignored - Config model fallback flow with better provider/model selection behavior
- Subagent skip logic (does not rename subagent sessions)
- Smarter context extraction (keeps full user message + first/last assistant reply per turn)
- Improved logging and error output for debugging and operations
- Plugin listens for OpenCode
session.statusevents. - When status becomes
idle, it checks gates:- plugin enabled
- not a subagent session
- current directory not excluded
updateThresholdreached
- It loads recent conversation context and builds a compact prompt payload.
- It picks a model:
- use configured
modelfirst (if set) - fallback to authenticated providers in priority order
- use configured
- It generates a short title and updates the current session title.
npm install @the3asic/opencode-smart-titleAdd to ~/.config/opencode/opencode.json:
{
"plugin": ["@the3asic/opencode-smart-title"]
}The plugin supports global and project-level config:
- Global:
~/.config/opencode/smart-title.jsonc - Project:
.opencode/smart-title.jsonc(overrides global)
The plugin auto-creates a default global config on first run.
If you are actively developing this plugin, you can load local build output directly:
{
"plugin": [
"file:///absolute/path/to/opencode-smart-title/dist/index.js"
]
}Use package install for daily usage across machines, and local file mode only for development/debugging.
MIT
{ "enabled": true, "debug": false, // Optional, for example: "opencode/gpt-5-nano" // "model": "anthropic/claude-haiku-4-5", // Optional custom generation prompt // "prompt": "Generate very short technical titles...", "updateThreshold": 1, // Optional directory blacklist // "excludeDirectories": ["/home/ubuntu/.heartbeat"] }