@hyakt/opencode-smart-title
v0.1.9
Published
OpenCode plugin that automatically generates meaningful session titles using AI and smart context selection
Downloads
117
Maintainers
Readme
Smart Title Plugin (fork)
Auto-generates meaningful session titles for your OpenCode conversations using AI.
Forked from @tarquinen/opencode-smart-title.
What Changed (Why This Fork)
The original plugin uses @tarquinen/opencode-auth-provider + ai SDK to call LLM APIs directly from the plugin. This approach has a compatibility issue: the auth-provider's custom fetch wrapper returns undefined instead of a proper Response object when used with the github-copilot provider, causing extractResponseHeaders(response) to crash with TypeError: undefined is not an object.
This fork replaces the direct API call with OpenCode's subagent session API (client.session.create / client.session.prompt), delegating LLM calls to OpenCode itself.
Benefits
- Works with all providers including
github-copilot(no auth-provider fetch bug) - Removed 3 heavy dependencies:
ai,@ai-sdk/openai-compatible,@tarquinen/opencode-auth-provider - Custom prompt support via
promptconfig field
What It Does
- Watches your conversation and generates short, descriptive titles
- Updates automatically when the session becomes idle (you stop typing)
- Delegates LLM calls to OpenCode via subagent sessions - no direct API calls
- Works with any provider that OpenCode supports
Installation
Add to ~/.config/opencode/opencode.json:
{
"plugin": ["@hyakt/opencode-smart-title"]
}Configuration
The plugin supports both global and project-level configuration:
- Global:
~/.config/opencode/smart-title.jsonc- Applies to all sessions - Project:
.opencode/smart-title.jsonc- Overrides global config
The plugin creates a default global config on first run.
{
// Enable or disable the plugin
"enabled": true,
// Enable debug logging
"debug": false,
// Optional: Use a specific model (format: "provider/model")
// "model": "github-copilot/claude-haiku-4.5",
// Optional: Custom prompt for title generation
// "prompt": "Generate a short Japanese title for this conversation.",
// Update title every N idle events (1 = every time you pause)
"updateThreshold": 1
}License
MIT
