The enqueue -> upload -> complete calls were transcribed into this file and twelve others before hanzoai/ci carried them. Four steps collapse to one `uses:`, so the plane's contract is written once and a fix lands everywhere rather than in whichever repo someone remembered to edit. It also self-provisions. sitedeploy POSTs /v1/projects idempotently before the enqueue, so a slug that has never deployed no longer 404s on its first run -- which is every site in this fleet except hanzo-ai, hips and hanzo-app. Build steps are untouched, verified byte-identical against the previous revision; only the Sites-plane plumbing moved. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
hanzo.vim
An AI plugin for Vim and Neovim: generate and edit text in a buffer, explain or refactor a
selection, and run a code cell against a Jupyter kernel — all through :Hanzo* commands
without leaving the editor.
Requires Vim 8.0+ or Neovim 0.8+, and Python 3.10+.
Install
Clone into your plugin path. packload, Vim:
git clone --depth 1 https://github.com/hanzoai/hanzo.vim \
~/.vim/pack/git-plugins/start/hanzo.vim
Neovim:
git clone --depth 1 https://github.com/hanzoai/hanzo.vim \
~/.local/share/nvim/site/pack/git-plugins/start/hanzo.vim
Windows:
git clone --depth 1 https://github.com/hanzoai/hanzo.vim \
~/vimfiles/pack/git-plugins/start/hanzo.vim
With vim-plug:
Plug 'hanzoai/hanzo.vim'
Then, so :help works:
packloadall | silent! helptags ALL
First use
Set the model and the endpoint you want to talk to, then start the bridge:
let g:hanzo_model = 'zen5-coder'
let g:hanzo_provider = 'hanzo'
:HanzoStart " start the bridge process
:HanzoStatus " check it came up
:Hanzo write a test for this function
Commands, all of them defined in plugin/hanzo.vim:
| Command | What it does |
|---|---|
:Hanzo [prompt] |
Generate into the buffer |
:HanzoComplete |
Complete at the cursor |
:HanzoExplain |
Explain the selection |
:HanzoFix |
Fix the selection |
:HanzoTests |
Write tests for the selection |
:HanzoDocs |
Write docs for the selection |
:HanzoReview |
Review the selection |
:HanzoModel <id> · :HanzoModels |
Set or list the model |
:HanzoMode <mode> |
Switch mode |
:HanzoEval <expr> · :HanzoEvalLine · :HanzoEvalSelection · :HanzoRepl <kernel> |
Evaluate through a Jupyter kernel |
:HanzoStart · :HanzoStop · :HanzoStatus · :HanzoVersion |
Manage the bridge |
Configuration variables: g:hanzo_model, g:hanzo_provider, g:hanzo_port,
g:hanzo_mode, g:hanzo_auto_start, g:hanzo_diagnostics, g:hanzo_debug,
g:hanzo_set_default_keybinds.
The defaults compiled into
plugin/hanzo.vimtoday still point at a local endpoint and a non-Hanzo model id. Setg:hanzo_modelandg:hanzo_provideryourself until that is fixed;zen5-coderandensoare the ids to reach for. The full catalog iscurl https://catalog.hanzo.ai/v1/models.
Optional integrations
Detected automatically if you have them:
- nui.nvim — Neovim UI
- significant.nvim — animated signs
- ALE — fixing problems in generated code
Docs
:help neural in the editor, doc/ and docs/ in the repository, and
LLM.md for the code layout. The bridge itself is
python3/bridge.py.
Lineage
A fork of dense-analysis/neural. The :Neural
commands and the buffer-editing machinery come from there and still work; the :Hanzo*
commands, the bridge and the REPL integration are ours. Upstream's licence is preserved in
LICENSE.md, and this fork is not affiliated with or endorsed by that project.