A conversational coding assistant plugin for OpenCode with semantic code search.
This project is not led by Opencode Developers. If you encounter any problems, file an issue here.
Chatifier transforms OpenCode into a more conversational experience with two specialized agents and local semantic search.
| Agent | Purpose |
|---|---|
| Just Chat | Quick questions, web research, semantic search, memory |
| Tool Chat | Full toolkit with files, semantic search, and memory |
- Semantic Search - Ask "where is auth handled?" and find code by meaning, not keywords
- Memory - Tell it to remember preferences and they persist across sessions
- Task Tracking - Built-in todo list for multi-step work
- Skills - Load project-specific guidance from
.opencode/skill/ - Streamlined Prompts - Concise, direct responses without filler
Add to your opencode.json:
{
"plugin": ["@howaboua/opencode-chat@latest"]
}OpenCode automatically installs the plugin on next launch.
{
"plugin": ["@howaboua/opencode-chat@0.1.10"]
}For new projects or directories with fewer than 100 files, just launch OpenCode. The plugin automatically:
- Downloads the embedding model (~90MB, cached in
.opencode/chat/models/) - Indexes your codebase for semantic search
For directories with 100+ files (Obsidian vaults, large codebases, etc.), you MUST run setup manually before launching OpenCode. Otherwise, the plugin will skip indexing to avoid blocking startup.
cd your-project
# Download the embedding model first (requires Bun)
bunx --bun opencode-chat-download-model@npm:@howaboua/opencode-chat
# Index your files (may take several minutes for large directories)
bunx --bun opencode-chat-semantic-index@npm:@howaboua/opencode-chat --mode fullAfter this one-time setup, OpenCode will launch normally and only re-index changed files.
Use the agent selector in OpenCode to switch between:
- Just Chat - Conversational, minimal tools, web access
- Tool Chat - Full toolkit including semantic search
Ask natural language questions:
- "Where is the database connection configured?"
- "Find error handling for API requests"
- "Show me the authentication flow"
The assistant searches by meaning using local embeddings - no API calls, fully private.
Tell the assistant to remember things:
- "Remember that I prefer TypeScript over JavaScript"
- "Remember this project uses React 19"
Memories persist in AGENTS.md and apply to future sessions.
For multi-step tasks, the assistant creates and tracks a todo list automatically. The list persists in todo.md and is removed when all tasks complete.
- Embeddings: Uses fastembed with the AllMiniLML6V2 model
- Storage: SQLite database in
.opencode/chat/semantic.sqlite - Indexing: Incremental - only re-indexes changed files
MIT
