-
Notifications
You must be signed in to change notification settings - Fork 140
Add OpenCode ACP support #34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
It occurs to me now that maybe those failing tests are from parallelizing requests in the refactor command and the other providers don’t have ACP available. I didn’t read which tests failed but this is an issue regardless. I probably screwed the pooch and need to fallback to cli prompting sequentially when ACP is not available (unless you can parallelize CLI commands but I imagine the other providers have locking mechanisms where you can’t do that). Just a note for my future self. |
|
ill look at this at some point :) I dont know what this is so ill have to read up on it before proceeding! |
There’s still stuff I need to fix so no rush. |
a14331c to
02182da
Compare
|
Let me look at this in the morning :) After I get skills in. I think it's good to go... But I want to make sure it's good |
No rush. Just easier to review in PR. |
|
Hey this looks really cool, I want to use it! Is this gonna be merged soon?? |
Technically it works but I think it can be better organized to make it more self explanatory. Right now when I read the code, it reads like I'm building the entire internet instead of just using the ACP protocol. Unfortunately, I couldn't find an Agent Client Protocol library for lua so I had to reinvent some wheels. Would have been a nice abstraction to have though.
Don't know but thanks for coming to my tech talk. |
|
I will likely merge tonight, but first I have to merge skills-v2 |
Implement adding quickfix list and multifile refactoring. bug fix fixes to acp implementation refactoring across files with acp works parallel requests clean up
430cd41 to
1f6b6d0
Compare
|
The minimal config you'd need to try the acp stuff is: To refactor across multiple files, I mapped it with this. Interested to see the limitations on this. This finds references via LSP so I'm sure we'll find some limitations. The ACP code is gnarly looking (to me) but it's ready to go (as in working functionally) as is. |
…g updates buffer, response extraction priority, and session creation flow
|
Okay, I'm done. I'll stop now. I have beaten the dead horse because of borderline pedantics. |
Add ACP (Agent Client Protocol) support for OpenCode. This works for all functions (fill in, over-range, refactor, etc). This implementation is faster (especially when trying to refactor with 99 across multiple files) than using the CLI to get responses because we're able to persist the session (which I don't do yet) and parallelize the requests to OpenCode (which is implemented).
Tested in Neovim
but some of tests fail despite the feature working. I never updated them really so probably need to fix them.and the tests pass.If you also want to trade higher complexity for better performance 😉, configure 99 with:
Demo videos:
ACP:
acpprovider.mp4
Open Code
https://github.com/user-attachments/assets/3a294e1d-79bd-4904-8dd6-d45471457509
Claude Code
Screen.Recording.2026-01-26.at.6.44.25.PM.mov
Cursor
Screen.Recording.2026-01-26.at.6.53.53.PM.mov