Skip to content

OpenCode.nvim Feature RequestsΒ #136

@romankovalov

Description

@romankovalov

OpenCode.nvim Feature Requests

πŸ‘‹ Hello opencode.nvim Team!

First off, thank you for creating such an incredible Neovim integration! The opencode.nvim plugin has become an essential part of my daily development workflow, and I deeply appreciate all the hard work you've put into making OpenCode seamlessly accessible from Neovim.

These feature requests come from a place of genuine enthusiasm and a desire to contribute back to the project. I've been using opencode.nvim extensively and have built workarounds for some common pain points I've encountered while integrating it with my Neovim setup. Rather than keeping these solutions to myself, I wanted to share them in the hope they might benefit the wider community.

I've tried to be as thorough as possible with each request - including real code examples, use cases, and working implementations - but I'm completely open to alternative approaches. These are meant to be conversation starters, not prescriptions. I know you have a much deeper understanding of the plugin architecture and OpenCode integration, so please feel free to adapt, modify, or even reject these ideas as you see fit.

If any of these features align with your roadmap, I'd be happy to contribute PRs or help in any way I can. And if they don't fit the project's direction, that's totally fine too - I'm just grateful for the amazing plugin you've already built!


This directory contains feature request proposals for opencode.nvim, prioritized by impact and based on real-world usage patterns from this configuration.

Overview

These feature requests address common pain points when integrating OpenCode with custom Neovim setups. Each request includes:

  • Clear problem statement from user perspective
  • Current workarounds with code examples
  • Proposed solutions with API designs
  • Implementation considerations for maintainers

Feature Requests

Priority Feature Status Impact
1 UI Integration API Draft πŸ”₯ High - Affects all custom status bar users
2 Focus Mode Integration Draft πŸ”₯ High - Major UX improvement
3 Emergency Stop API Draft πŸ”₯ High - Critical reliability feature
4 Diagnostics & Health System Draft ⚑ Medium - Reduces support burden
5 Provider Favorites Draft ⚑ Medium - Power user QoL
6 Quick Actions & Templates Draft πŸ’‘ Low - Workflow efficiency

Current Workarounds

This configuration implements all requested features as workarounds:

plugins/ai/
β”œβ”€β”€ opencode_ui_patches.lua           # β†’ Feature #1 (70 lines of monkey-patching)
β”œβ”€β”€ opencode_integration.lua          # β†’ Feature #2 (165 lines managing LSP/features)
β”œβ”€β”€ opencode_force_stop.lua           # β†’ Feature #3 (112 lines of manual cleanup)
β”œβ”€β”€ opencode_diagnostics/             # β†’ Feature #4 (561 lines across 4 modules)
β”‚   β”œβ”€β”€ log_parser.lua
β”‚   β”œβ”€β”€ health_ui.lua
β”‚   β”œβ”€β”€ monitors.lua
β”‚   └── init.lua
β”œβ”€β”€ opencode_favorites.lua            # β†’ Feature #5 (51 lines custom picker)
└── opencode_build_mode.lua           # β†’ Feature #6 (48 lines quick helper)

Total workaround code: ~1,000 lines that could be replaced by clean APIs.

Why These Features?

Built from Real Usage

These requests aren't theoretical - they solve actual problems encountered during daily use:

  • Monkey-patching breaks on updates β†’ Need official UI customization API
  • LSP popups interrupt AI generation β†’ Need focus mode
  • OpenCode occasionally gets stuck β†’ Need emergency stop
  • Hard to debug when things break β†’ Need diagnostics system
  • Switching models is tedious β†’ Need favorites
  • Repetitive prompts waste time β†’ Need templates

Benefit Multiple User Groups

All Users:

  • Emergency stop API (reliability)
  • Diagnostics system (self-service debugging)

Custom Status Bar Users (lualine, heirline, etc.):

  • UI integration API (eliminate monkey-patching)

Power Users:

  • Focus mode (better UX)
  • Provider favorites (faster workflows)
  • Quick actions (efficiency)

Submitting to Upstream

When ready to submit:

  1. Choose priority order - Start with high-impact requests
  2. One issue per feature - Keep discussions focused
  3. Reference this config - Link to implementation as proof-of-concept
  4. Be flexible - Maintainers may prefer different API designs
  5. Offer to help - Propose contributing PRs if interested

Reference Implementation

Full working implementation available at:

Discussion

Each feature request is independent and can be discussed/implemented separately. Maintainers are welcome to:

  • Propose alternative API designs
  • Merge related features
  • Split features into smaller chunks
  • Prioritize differently based on upstream roadmap

Updates

  • 2025-12-08: Initial feature requests created based on configuration refactoring
  • Status updates will be tracked here as issues are submitted/resolved

Questions or feedback? Open an issue in this repository or discuss in the upstream opencode.nvim project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions