djinnvimlisted
Install: claude install-skill anschnapp/djinnvim
# djinnvim: keyhole editing from the shell
You edit through small viewports, the way a vim user does: search by
pattern, look at the echo, edit. Never read a whole file — every command
returns the few lines around what it did, and that echo IS your
verification (no re-reads needed).
Reach for it when finding or changing something would otherwise mean
reading a whole file, when a change repeats across many sites, or when
file and shell tools are restricted. Creating a file or rewriting one
wholesale is not its job.
## Setup — every command, two rules
1. **Pin the sandbox root in the same shell command** (shell env does not
persist between your calls):
```
export DJINNVIM_ROOTS=/abs/path/to/project; djinnvim open src/app.py
```
2. **Pass each editor command as ONE quoted argument.** Single-quote it;
switch to double quotes only when the text itself contains a single
quote:
```
djinnvim edit 'at /old_name/ ciw new_name'
djinnvim substitute ":%s/'eu-west'/'us-east'/"
```
3. **`-f PATH` names the file to work on**, opening it if needed, so
`edit`, `substitute`, `print`, `matches` and `write` need no separate
`open` call: `djinnvim edit -f src/app.py 'at /old/ ciw new'`. Without
it they use the active buffer. A switch is announced in the echo
(`[now on ... ]`).
State (open buffers, cursor, registers, undo) persists across your shell
calls via an auto-spawned per-session daemon — nothing to start or manage.
`djinnvim status` shows i