At work we've licensed cursor, but as a vim holdout it's a nogo and we're otherwise somewhat restricted on what we can install.
I have 3 vim commands:
ZB $n: paste the buffer $n inside backticks along with the file path.
Z: Run the current buffer through our llm and append the output
ZI: Run the yank register through our llm and insert the output at the cursor.
The commands also pass along my AGENTS.md
Basically I'm manually building the context. One thing I really like is that when it outputs something stupid, I can just edit that part. E.g. if I ask for a plan to do something, and I don't like step 5, I can just delete it.
One humorous side effect is that without the clear chat structure, it sometimes has difficulty figuring out the end-of-stream. It can end with a question like "would you like me to ...?", answer itself yes, and keep going.