a conjure operator for neovim

Magic with motions.

Target text with any motion, whisper an intent, and the change is transmuted in place — while you keep editing, narrated live, reversible with a single u.

I. Target
~ip
any motion or text object
II. Incant
“add error handling”
plain language, <Up> recalls past spells
III. Transmute
async splice, one undo step
-- the summoning { "vim-pro/conjurer.nvim", opts = {} }
no reagents required — the local claude CLI is found automatically
The scrying glass watch the spell work — the region locks, the model narrates, the buffer stays yours
fetch.lua  
NORMAL fetch.lua a counterspell (:ConjureCancel) leaves the file byte-identical 15:4

The laws of casting

deep Vim fidelity is the whole discipline
First law
All magic is reversible
One conjure, one undo step. The result flashes when it lands — u un-conjures, entirely.
Second law
A spell spoken once echoes
The intent is captured at the cast. . repeats it over any new target — no prompt, ever again.
Third law
Spells keep in bottles
:let @r = "add type hints" bottles a spell; "r~ip uncorks it anywhere — even mid-macro.
Fourth law
A counterspell costs nothing
Nothing touches the buffer until the final splice. :ConjureCancel always leaves the file byte-identical.
Fifth law
Choose your familiar
Claude CLI by default, the API with a key, ollama, or any Lua function — the provider protocol is 20 lines.
Sixth law
Ward what is precious
Every cast sends the snippet and context to your provider. Keep secret buffers behind a local familiar you control.

The spell circle

motion first, then cast — :h conjurer-mappings
~
Why ~? Vim’s own 'tildeop' exists solely to make it an operator. Its old power — flipping case — still lives at g~. Transmutation, but bigger.
Pick a target. Cast.
{ "vim-pro/conjurer.nvim", opts = {} }
MIT